[INFO] cloning repository https://github.com/thepointsupporter/exp-eval [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thepointsupporter/exp-eval" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepointsupporter%2Fexp-eval", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepointsupporter%2Fexp-eval'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 450eec3ba1ee462b400e4071400269546045df2a [INFO] checking thepointsupporter/exp-eval against master#e9182f195b8505c87c4bd055b9f6e114ccda0981 for pr-144098 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthepointsupporter%2Fexp-eval" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/thepointsupporter/exp-eval [INFO] finished tweaking git repo https://github.com/thepointsupporter/exp-eval [INFO] tweaked toml for git repo https://github.com/thepointsupporter/exp-eval written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/thepointsupporter/exp-eval on toolchain e9182f195b8505c87c4bd055b9f6e114ccda0981 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/thepointsupporter/exp-eval 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" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cb3858930e838c856d019d39c510d644a4d3f5354819cc5d2f87482a5caaab3e [INFO] running `Command { std: "docker" "start" "-a" "cb3858930e838c856d019d39c510d644a4d3f5354819cc5d2f87482a5caaab3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cb3858930e838c856d019d39c510d644a4d3f5354819cc5d2f87482a5caaab3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb3858930e838c856d019d39c510d644a4d3f5354819cc5d2f87482a5caaab3e", kill_on_drop: false }` [INFO] [stdout] cb3858930e838c856d019d39c510d644a4d3f5354819cc5d2f87482a5caaab3e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+e9182f195b8505c87c4bd055b9f6e114ccda0981" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0a972f40fe7a8dd456823c654d6b9560690f9926e81433bf57ab3ded62ddc8a6 [INFO] running `Command { std: "docker" "start" "-a" "0a972f40fe7a8dd456823c654d6b9560690f9926e81433bf57ab3ded62ddc8a6", kill_on_drop: false }` [INFO] [stderr] Checking exp-eval v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `add` should have an upper camel case name [INFO] [stdout] --> src/main.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | add, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Add` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `mul` should have an upper camel case name [INFO] [stdout] --> src/main.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | mul, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `div` should have an upper camel case name [INFO] [stdout] --> src/main.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | div, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Div` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `sub` should have an upper camel case name [INFO] [stdout] --> src/main.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | sub, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `opbr` should have an upper camel case name [INFO] [stdout] --> src/main.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | opbr, [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Opbr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `clbr` should have an upper camel case name [INFO] [stdout] --> src/main.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | clbr, [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Clbr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `dig` should have an upper camel case name [INFO] [stdout] --> src/main.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | dig, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Dig` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `dec` should have an upper camel case name [INFO] [stdout] --> src/main.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | dec, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Dec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `non` should have an upper camel case name [INFO] [stdout] --> src/main.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | non, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Non` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `add` should have an upper camel case name [INFO] [stdout] --> src/main.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | add, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Add` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `mul` should have an upper camel case name [INFO] [stdout] --> src/main.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | mul, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Mul` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `div` should have an upper camel case name [INFO] [stdout] --> src/main.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | div, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Div` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `sub` should have an upper camel case name [INFO] [stdout] --> src/main.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | sub, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `opbr` should have an upper camel case name [INFO] [stdout] --> src/main.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | opbr, [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Opbr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `clbr` should have an upper camel case name [INFO] [stdout] --> src/main.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | clbr, [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Clbr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `dig` should have an upper camel case name [INFO] [stdout] --> src/main.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | dig, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Dig` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `dec` should have an upper camel case name [INFO] [stdout] --> src/main.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | dec, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Dec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `non` should have an upper camel case name [INFO] [stdout] --> src/main.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | non, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Non` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x` is never read [INFO] [stdout] --> src/main.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut x, mut y) = (0.0, 0.0); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `y` is never read [INFO] [stdout] --> src/main.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut x, mut y) = (0.0, 0.0); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `prev_sym` is never read [INFO] [stdout] --> src/main.rs:154:14 [INFO] [stdout] | [INFO] [stdout] 154 | let (mut prev_sym, mut curr_sym) = (non, non); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/main.rs:337:25 [INFO] [stdout] | [INFO] [stdout] 337 | let (mut start, mut end) = (0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let mut result = primitive; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:390:9 [INFO] [stdout] | [INFO] [stdout] 390 | let mut byte_arr = exp.as_bytes(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `denuded_exp` is never read [INFO] [stdout] --> src/main.rs:419:13 [INFO] [stdout] | [INFO] [stdout] 419 | let mut denuded_exp = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `splitend` is never read [INFO] [stdout] --> src/main.rs:456:30 [INFO] [stdout] | [INFO] [stdout] 456 | let (mut splitstart, mut splitend) = (0, 0); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:486:9 [INFO] [stdout] | [INFO] [stdout] 486 | let mut merge_start = wop - 1; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result` is never read [INFO] [stdout] --> src/main.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | let mut result = vec![]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `oprnd1` is never read [INFO] [stdout] --> src/main.rs:529:14 [INFO] [stdout] | [INFO] [stdout] 529 | let (mut oprnd1, mut oprnd2) = ( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `oprnd2` is never read [INFO] [stdout] --> src/main.rs:529:26 [INFO] [stdout] | [INFO] [stdout] 529 | let (mut oprnd1, mut oprnd2) = ( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | stdin().read_line(&mut x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 581 | let _ = stdin().read_line(&mut x); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `x` is never read [INFO] [stdout] --> src/main.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut x, mut y) = (0.0, 0.0); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `y` is never read [INFO] [stdout] --> src/main.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | let (mut x, mut y) = (0.0, 0.0); [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `prev_sym` is never read [INFO] [stdout] --> src/main.rs:154:14 [INFO] [stdout] | [INFO] [stdout] 154 | let (mut prev_sym, mut curr_sym) = (non, non); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `end` is never read [INFO] [stdout] --> src/main.rs:337:25 [INFO] [stdout] | [INFO] [stdout] 337 | let (mut start, mut end) = (0, 0); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let mut result = primitive; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:390:9 [INFO] [stdout] | [INFO] [stdout] 390 | let mut byte_arr = exp.as_bytes(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `denuded_exp` is never read [INFO] [stdout] --> src/main.rs:419:13 [INFO] [stdout] | [INFO] [stdout] 419 | let mut denuded_exp = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `splitend` is never read [INFO] [stdout] --> src/main.rs:456:30 [INFO] [stdout] | [INFO] [stdout] 456 | let (mut splitstart, mut splitend) = (0, 0); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:486:9 [INFO] [stdout] | [INFO] [stdout] 486 | let mut merge_start = wop - 1; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `result` is never read [INFO] [stdout] --> src/main.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | let mut result = vec![]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `oprnd1` is never read [INFO] [stdout] --> src/main.rs:529:14 [INFO] [stdout] | [INFO] [stdout] 529 | let (mut oprnd1, mut oprnd2) = ( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `oprnd2` is never read [INFO] [stdout] --> src/main.rs:529:26 [INFO] [stdout] | [INFO] [stdout] 529 | let (mut oprnd1, mut oprnd2) = ( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | stdin().read_line(&mut x); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 581 | let _ = stdin().read_line(&mut x); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] running `Command { std: "docker" "inspect" "0a972f40fe7a8dd456823c654d6b9560690f9926e81433bf57ab3ded62ddc8a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0a972f40fe7a8dd456823c654d6b9560690f9926e81433bf57ab3ded62ddc8a6", kill_on_drop: false }` [INFO] [stdout] 0a972f40fe7a8dd456823c654d6b9560690f9926e81433bf57ab3ded62ddc8a6