[INFO] fetching crate squid-rs 0.14.0...
[INFO] checking squid-rs-0.14.0 against f10db292a3733b5c67c8da8c7661195ff4b05774 for pr-158914
[INFO] extracting crate squid-rs 0.14.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate squid-rs 0.14.0
[INFO] finished tweaking crates.io crate squid-rs 0.14.0
[INFO] tweaked toml for crates.io crate squid-rs 0.14.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate squid-rs 0.14.0 on toolchain f10db292a3733b5c67c8da8c7661195ff4b05774
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate squid-rs 0.14.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded croner v2.2.0
[INFO] [stderr]   Downloaded tokio-cron-scheduler v0.13.0
[INFO] [stderr]   Downloaded tokio-tungstenite v0.23.1
[INFO] [stderr]   Downloaded hybrid-array v0.4.8
[INFO] [stderr]   Downloaded nanoid v0.4.0
[INFO] [stderr]   Downloaded referencing v0.46.0
[INFO] [stderr]   Downloaded jsonschema v0.46.0
[INFO] [stderr]   Downloaded async-openai v0.34.0
[INFO] [stderr]   Downloaded rig-core v0.34.0
[INFO] [stderr]   Downloaded tiktoken-rs v0.11.0
[INFO] [stderr]   Downloaded impl-more v0.1.9
[INFO] [stderr]   Downloaded async-openai-macros v0.1.1
[INFO] [stderr]   Downloaded bytestring v1.5.0
[INFO] [stderr]   Downloaded actix-web-codegen v4.3.0
[INFO] [stderr]   Downloaded actix-router v0.5.4
[INFO] [stderr]   Downloaded actix-web v4.13.0
[INFO] [stderr]   Downloaded language-tags v0.3.2
[INFO] [stderr]   Downloaded actix-utils v3.0.1
[INFO] [stderr]   Downloaded local-waker v0.1.4
[INFO] [stderr]   Downloaded actix-macros v0.2.4
[INFO] [stderr]   Downloaded local-channel v0.1.5
[INFO] [stderr]   Downloaded actix-codec v0.5.2
[INFO] [stderr]   Downloaded v_htmlescape v0.15.8
[INFO] [stderr]   Downloaded http-range v0.1.5
[INFO] [stderr]   Downloaded actix-service v2.0.3
[INFO] [stderr]   Downloaded actix-rt v2.11.0
[INFO] [stderr]   Downloaded actix-files v0.6.10
[INFO] [stderr]   Downloaded actix-cors v0.7.1
[INFO] [stderr]   Downloaded actix-server v2.6.0
[INFO] [stderr]   Downloaded actix-http v3.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898
[INFO] running `Command { std: "docker" "start" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling rquickjs-sys v0.11.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking tokio v1.51.1
[INFO] [stderr]     Checking iri-string v0.7.11
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling bytestring v1.5.0
[INFO] [stderr]     Checking ref-cast v1.0.25
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]     Checking actix-service v2.0.3
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]    Compiling toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]     Checking hybrid-array v0.4.8
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling actix-router v0.5.4
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling chrono-tz-build v0.3.0
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking eventsource-stream v0.2.3
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]     Checking phf_shared v0.13.1
[INFO] [stderr]    Compiling dlopen2_derive v0.4.3
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling chrono-tz v0.9.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling relative-path v2.0.1
[INFO] [stderr]    Compiling v_htmlescape v0.15.8
[INFO] [stderr]     Checking bytecount v0.6.9
[INFO] [stderr]     Checking borrow-or-share v0.2.4
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]    Compiling unicode-general-category v1.1.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking fluent-uri v0.4.1
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]     Checking dlopen2 v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]    Compiling rust-embed-utils v8.11.0
[INFO] [stderr]     Checking fancy-regex v0.17.0
[INFO] [stderr]     Checking block-buffer v0.12.0
[INFO] [stderr]     Checking crypto-common v0.2.1
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]    Compiling sqlite-vec v0.1.9
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking micromap v0.3.0
[INFO] [stderr]    Compiling rquickjs-core v0.11.0
[INFO] [stderr]    Compiling tokio-cron-scheduler v0.13.0
[INFO] [stderr]     Checking deunicode v1.6.2
[INFO] [stderr]     Checking uuid-simd v0.8.0
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking inotify v0.11.1
[INFO] [stderr]     Checking digest v0.11.2
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking fuzzy-matcher v0.3.7
[INFO] [stderr]     Checking slug v0.1.6
[INFO] [stderr]     Checking referencing v0.46.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking globwalk v0.9.1
[INFO] [stderr]     Checking schemars v1.2.1
[INFO] [stderr]    Compiling rust-embed-impl v8.11.0
[INFO] [stderr]     Checking humansize v2.1.3
[INFO] [stderr]     Checking fraction v0.15.3
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]    Compiling tabled_derive v0.11.0
[INFO] [stderr]     Checking papergrid v0.17.0
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking nanoid v0.4.0
[INFO] [stderr]     Checking croner v2.2.0
[INFO] [stderr]     Checking testing_table v0.3.0
[INFO] [stderr]     Checking console v0.16.3
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking ordered-float v5.2.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling async-openai-macros v0.1.1
[INFO] [stderr]     Checking hashlink v0.11.0
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking http-range v0.1.5
[INFO] [stderr]     Checking num-cmp v0.1.0
[INFO] [stderr]     Checking as-any v0.3.2
[INFO] [stderr]    Compiling squid-rs v0.14.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking tabled v0.20.0
[INFO] [stderr]     Checking tiktoken-rs v0.11.0
[INFO] [stderr]     Checking indicatif v0.18.4
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking tera v1.20.1
[INFO] [stderr]     Checking inquire v0.9.4
[INFO] [stderr]     Checking rust-embed v8.11.0
[INFO] [stderr]     Checking chrono-tz v0.10.4
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling rquickjs-macro v0.11.0
[INFO] [stderr]     Checking sysinfo v0.38.4
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking actix-http v3.12.0
[INFO] [stderr]     Checking rquickjs v0.11.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking actix-web v4.13.0
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stderr]     Checking actix-cors v0.7.1
[INFO] [stderr]     Checking actix-files v0.6.10
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking reqwest v0.13.2
[INFO] [stderr]     Checking reqwest-eventsource v0.6.0
[INFO] [stderr]     Checking async-openai v0.34.0
[INFO] [stderr]     Checking rig-core v0.34.0
[INFO] [stderr]     Checking jsonschema v0.46.0
[INFO] [stdout] warning: use of deprecated function `tiktoken_rs::get_bpe_from_model`: renamed to `bpe_for_model`
[INFO] [stdout]   --> src/tokens.rs:64:24
[INFO] [stdout]    |
[INFO] [stdout] 64 |     match tiktoken_rs::get_bpe_from_model(model) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `tiktoken_rs::get_bpe_from_model`: renamed to `bpe_for_model`
[INFO] [stdout]    --> src/tokens.rs:114:24
[INFO] [stdout]     |
[INFO] [stdout] 114 |     match tiktoken_rs::get_bpe_from_model(model) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `tiktoken_rs::get_bpe_from_model`: renamed to `bpe_for_model`
[INFO] [stdout]   --> src/tokens.rs:64:24
[INFO] [stdout]    |
[INFO] [stdout] 64 |     match tiktoken_rs::get_bpe_from_model(model) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `tiktoken_rs::get_bpe_from_model`: renamed to `bpe_for_model`
[INFO] [stdout]    --> src/tokens.rs:114:24
[INFO] [stdout]     |
[INFO] [stdout] 114 |     match tiktoken_rs::get_bpe_from_model(model) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tool_args` and `tool_call_id` are never read
[INFO] [stdout]   --> src/api.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ApprovalState {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 29 |     pub tool_name: String,
[INFO] [stdout] 30 |     pub tool_args: Value,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 31 |     pub tool_call_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApprovalState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reasoning`, `ToolCall`, `ToolResult`, and `JobStatus` are never constructed
[INFO] [stdout]    --> src/api.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub enum StreamEvent {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 377 |     Reasoning { text: String },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 378 |     #[serde(rename = "tool_call")]
[INFO] [stdout] 379 |     ToolCall { name: String, arguments: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 380 |     #[serde(rename = "tool_result")]
[INFO] [stdout] 381 |     ToolResult { name: String, result: String },
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     JobStatus {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StreamEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_k` is never read
[INFO] [stdout]     --> src/api.rs:1860:9
[INFO] [stdout]      |
[INFO] [stdout] 1857 | pub struct RagQueryRequest {
[INFO] [stdout]      |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1860 |     pub top_k: Option<usize>,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RagQueryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `agent_id` is never read
[INFO] [stdout]   --> src/audio.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TranscribeAudioRequest {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub agent_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranscribeAudioRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_database_file` and `get_default_agent` are never used
[INFO] [stdout]    --> src/config.rs:656:8
[INFO] [stdout]     |
[INFO] [stdout] 398 | impl Config {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 656 |     fn find_database_file() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 736 |     pub fn get_default_agent(&self) -> Option<&AgentConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cleanup_old_sessions`, `get_message_count`, and `session_exists` are never used
[INFO] [stdout]    --> src/db.rs:570:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Database {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |     pub fn cleanup_old_sessions(&self, max_age_seconds: i64) -> SqliteResult<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn get_message_count(&self, session_id: &str) -> SqliteResult<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn session_exists(&self, session_id: &str) -> SqliteResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_job_next_run` and `delete_old_job_executions` are never used
[INFO] [stdout]     --> src/db.rs:2498:12
[INFO] [stdout]      |
[INFO] [stdout] 2166 | impl Database {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2498 |     pub fn update_job_next_run(&self, id: i64, next_run: Option<&str>) -> SqliteResult<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2633 |     pub fn delete_old_job_executions(&self, max_age_days: i64) -> SqliteResult<usize> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_plugins` is never used
[INFO] [stdout]   --> src/plugins/mod.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn reload_plugins() -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reload` is never used
[INFO] [stdout]    --> src/plugins/manager.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl PluginManager {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn reload(&self) -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/plugins/runtime.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl PluginRuntime {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 17 |     /// Create a new sandboxed runtime
[INFO] [stdout] 18 |     pub fn new() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]   --> src/plugins/validator.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl SchemaValidator {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn is_valid(&self, data: &Value) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `embed_batch` is never used
[INFO] [stdout]    --> src/rag.rs:107:18
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl RagEmbedder {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub async fn embed_batch(&self, texts: Vec<String>) -> Result<Vec<Vec<f32>>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chunk_id` is never read
[INFO] [stdout]    --> src/rag.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub struct SearchResult {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 277 |     pub chunk_id: i64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]    --> src/rag.rs:424:12
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl DocumentWatcher {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn stop(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]    --> src/rag.rs:701:9
[INFO] [stdout]     |
[INFO] [stdout] 697 | pub struct DocumentInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 701 |     pub created_at: i64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DocumentInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `embedder` and `vector_store` are never read
[INFO] [stdout]    --> src/rag.rs:707:9
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub struct RagSystem {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 707 |     pub embedder: Arc<RagEmbedder>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 708 |     pub vector_store: Arc<SqliteVecStore>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInvocation` is never constructed
[INFO] [stdout]   --> src/session.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolInvocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_approaching_limit` and `is_over_limit` are never used
[INFO] [stdout]    --> src/session.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl TokenUsage {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn is_approaching_limit(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn is_over_limit(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_conversation_context` and `get_last_user_sources` are never used
[INFO] [stdout]    --> src/session.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl ChatSession {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn get_conversation_context(&self) -> Vec<(String, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn get_last_user_sources(&self) -> Vec<Source> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup_old_sessions` is never used
[INFO] [stdout]    --> src/session.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl SessionManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn cleanup_old_sessions(&self, max_age_seconds: i64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_string_with_context`, `get_context`, `insert`, and `remove` are never used
[INFO] [stdout]    --> src/template.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl TemplateRenderer {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn render_string_with_context(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_context(&self) -> &Context {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn insert<T: serde::Serialize>(&mut self, key: &str, value: &T) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn remove(&mut self, key: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tool_args` and `tool_call_id` are never read
[INFO] [stdout]   --> src/api.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ApprovalState {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 29 |     pub tool_name: String,
[INFO] [stdout] 30 |     pub tool_args: Value,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 31 |     pub tool_call_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApprovalState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Reasoning`, `ToolCall`, `ToolResult`, and `JobStatus` are never constructed
[INFO] [stdout]    --> src/api.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub enum StreamEvent {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 377 |     Reasoning { text: String },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 378 |     #[serde(rename = "tool_call")]
[INFO] [stdout] 379 |     ToolCall { name: String, arguments: String },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 380 |     #[serde(rename = "tool_result")]
[INFO] [stdout] 381 |     ToolResult { name: String, result: String },
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     JobStatus {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StreamEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_k` is never read
[INFO] [stdout]     --> src/api.rs:1860:9
[INFO] [stdout]      |
[INFO] [stdout] 1857 | pub struct RagQueryRequest {
[INFO] [stdout]      |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1860 |     pub top_k: Option<usize>,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RagQueryRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `agent_id` is never read
[INFO] [stdout]   --> src/audio.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TranscribeAudioRequest {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub agent_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranscribeAudioRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `find_database_file` and `get_default_agent` are never used
[INFO] [stdout]    --> src/config.rs:656:8
[INFO] [stdout]     |
[INFO] [stdout] 398 | impl Config {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 656 |     fn find_database_file() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 736 |     pub fn get_default_agent(&self) -> Option<&AgentConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_message_count` and `session_exists` are never used
[INFO] [stdout]    --> src/db.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Database {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn get_message_count(&self, session_id: &str) -> SqliteResult<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn session_exists(&self, session_id: &str) -> SqliteResult<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_job_next_run` and `delete_old_job_executions` are never used
[INFO] [stdout]     --> src/db.rs:2498:12
[INFO] [stdout]      |
[INFO] [stdout] 2166 | impl Database {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2498 |     pub fn update_job_next_run(&self, id: i64, next_run: Option<&str>) -> SqliteResult<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2633 |     pub fn delete_old_job_executions(&self, max_age_days: i64) -> SqliteResult<usize> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reload_plugins` is never used
[INFO] [stdout]   --> src/plugins/mod.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn reload_plugins() -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reload` is never used
[INFO] [stdout]    --> src/plugins/manager.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl PluginManager {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn reload(&self) -> Result<usize, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]    --> src/rag.rs:424:12
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl DocumentWatcher {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn stop(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]    --> src/rag.rs:701:9
[INFO] [stdout]     |
[INFO] [stdout] 697 | pub struct DocumentInfo {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 701 |     pub created_at: i64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DocumentInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `embedder` and `vector_store` are never read
[INFO] [stdout]    --> src/rag.rs:707:9
[INFO] [stdout]     |
[INFO] [stdout] 706 | pub struct RagSystem {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 707 |     pub embedder: Arc<RagEmbedder>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 708 |     pub vector_store: Arc<SqliteVecStore>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolInvocation` is never constructed
[INFO] [stdout]   --> src/session.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ToolInvocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_approaching_limit` and `is_over_limit` are never used
[INFO] [stdout]    --> src/session.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl TokenUsage {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn is_approaching_limit(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn is_over_limit(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_conversation_context` and `get_last_user_sources` are never used
[INFO] [stdout]    --> src/session.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl ChatSession {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn get_conversation_context(&self) -> Vec<(String, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn get_last_user_sources(&self) -> Vec<Source> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup_old_sessions` is never used
[INFO] [stdout]    --> src/session.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl SessionManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn cleanup_old_sessions(&self, max_age_seconds: i64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_context` is never used
[INFO] [stdout]    --> src/template.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl TemplateRenderer {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_context(&self) -> &Context {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 25s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898", kill_on_drop: false }`
[INFO] [stdout] 5712cb21d4ab12f7e00a81a98417ada5bbce751c17d43991d261eacdb352c898
