[INFO] updating cached repository bollu/timi [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bollu/timi [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bollu/timi" "work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/bollu/timi"` [INFO] [stderr] Cloning into 'work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/bollu/timi'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bollu/timi" "work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/bollu/timi"` [INFO] [stderr] Cloning into 'work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/bollu/timi'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9d2cc89d81578c1ec14823c43b50070029cc30db [INFO] sha for GitHub repo bollu/timi: 9d2cc89d81578c1ec14823c43b50070029cc30db [INFO] validating manifest of bollu/timi on toolchain master#435236b8877cdb98c82eaebfb7887782277265c5 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of bollu/timi on toolchain try#b5c7f157c20453dde8d47371abe73b32351b4e7f [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing bollu/timi [INFO] finished frobbing bollu/timi [INFO] frobbed toml for bollu/timi written to work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/bollu/timi/Cargo.toml [INFO] started frobbing bollu/timi [INFO] finished frobbing bollu/timi [INFO] frobbed toml for bollu/timi written to work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/bollu/timi/Cargo.toml [INFO] crate bollu/timi already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] error: the lock file /mnt/big/crater/work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/bollu/timi/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] the lockfile is outdated, regenerating it [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking bollu/timi against try#b5c7f157c20453dde8d47371abe73b32351b4e7f for pr-62849 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-62849/worker-3/try#b5c7f157c20453dde8d47371abe73b32351b4e7f:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/bollu/timi:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 748873cd7f17eb2d7a41790586f71b60417f66f4740b6b1937d56e177d7e79d7 [INFO] running `"docker" "start" "-a" "748873cd7f17eb2d7a41790586f71b60417f66f4740b6b1937d56e177d7e79d7"` [INFO] [stderr] Compiling libc v0.2.60 [INFO] [stderr] Checking encode_unicode v0.1.3 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking atty v0.2.13 [INFO] [stderr] Checking nix v0.5.1 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking csv v0.15.0 [INFO] [stderr] Checking prettytable-rs v0.6.7 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking rustyline v1.0.0 [INFO] [stderr] Checking timi v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/machine.rs:1507:16 [INFO] [stderr] | [INFO] [stderr] 1507 | Ok((ListAccess::Cons(x_addr, xs_addr))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/machine.rs:1507:16 [INFO] [stderr] | [INFO] [stderr] 1507 | Ok((ListAccess::Cons(x_addr, xs_addr))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | fn parse_identifier(mut cursor: &mut TokenizerCursor) -> Result<(Range, CoreToken), ParseError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:749:15 [INFO] [stderr] | [INFO] [stderr] 749 | fn parse_pack(mut c: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:893:18 [INFO] [stderr] | [INFO] [stderr] 893 | fn parse_mul_div(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:906:18 [INFO] [stderr] | [INFO] [stderr] 906 | fn parse_add_sub(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:919:16 [INFO] [stderr] | [INFO] [stderr] 919 | fn parse_relop(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:938:14 [INFO] [stderr] | [INFO] [stderr] 938 | fn parse_and(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | fn parse_or(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | mut processed: &mut HashSet, [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:83:32 [INFO] [stderr] | [INFO] [stderr] 83 | mut rec_stack: &mut HashSet) -> bool { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | fn parse_identifier(mut cursor: &mut TokenizerCursor) -> Result<(Range, CoreToken), ParseError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:749:15 [INFO] [stderr] | [INFO] [stderr] 749 | fn parse_pack(mut c: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:893:18 [INFO] [stderr] | [INFO] [stderr] 893 | fn parse_mul_div(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:906:18 [INFO] [stderr] | [INFO] [stderr] 906 | fn parse_add_sub(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:919:16 [INFO] [stderr] | [INFO] [stderr] 919 | fn parse_relop(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:938:14 [INFO] [stderr] | [INFO] [stderr] 938 | fn parse_and(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | fn parse_or(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | mut processed: &mut HashSet, [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:83:32 [INFO] [stderr] | [INFO] [stderr] 83 | mut rec_stack: &mut HashSet) -> bool { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/machine.rs:1507:16 [INFO] [stderr] | [INFO] [stderr] 1507 | Ok((ListAccess::Cons(x_addr, xs_addr))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/machine.rs:1507:16 [INFO] [stderr] | [INFO] [stderr] 1507 | Ok((ListAccess::Cons(x_addr, xs_addr))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_left_matches': superseded by `trim_start_matches` [INFO] [stderr] --> src/bin.rs:144:37 [INFO] [stderr] | [INFO] [stderr] 144 | let sc_defn_str = input.trim_left_matches("define ").to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_start_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_left_matches': superseded by `trim_start_matches` [INFO] [stderr] --> src/bin.rs:144:37 [INFO] [stderr] | [INFO] [stderr] 144 | let sc_defn_str = input.trim_left_matches("define ").to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_start_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | fn parse_identifier(mut cursor: &mut TokenizerCursor) -> Result<(Range, CoreToken), ParseError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:749:15 [INFO] [stderr] | [INFO] [stderr] 749 | fn parse_pack(mut c: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:893:18 [INFO] [stderr] | [INFO] [stderr] 893 | fn parse_mul_div(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:906:18 [INFO] [stderr] | [INFO] [stderr] 906 | fn parse_add_sub(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:567:21 [INFO] [stderr] | [INFO] [stderr] 567 | fn parse_identifier(mut cursor: &mut TokenizerCursor) -> Result<(Range, CoreToken), ParseError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:919:16 [INFO] [stderr] | [INFO] [stderr] 919 | fn parse_relop(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:938:14 [INFO] [stderr] | [INFO] [stderr] 938 | fn parse_and(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | fn parse_or(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:749:15 [INFO] [stderr] | [INFO] [stderr] 749 | fn parse_pack(mut c: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:893:18 [INFO] [stderr] | [INFO] [stderr] 893 | fn parse_mul_div(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:906:18 [INFO] [stderr] | [INFO] [stderr] 906 | fn parse_add_sub(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:919:16 [INFO] [stderr] | [INFO] [stderr] 919 | fn parse_relop(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:938:14 [INFO] [stderr] | [INFO] [stderr] 938 | fn parse_and(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/frontend.rs:950:13 [INFO] [stderr] | [INFO] [stderr] 950 | fn parse_or(mut cursor: &mut ParserCursor) -> Result { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | mut processed: &mut HashSet, [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:83:32 [INFO] [stderr] | [INFO] [stderr] 83 | mut rec_stack: &mut HashSet) -> bool { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | mut processed: &mut HashSet, [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/pretty_print.rs:83:32 [INFO] [stderr] | [INFO] [stderr] 83 | mut rec_stack: &mut HashSet) -> bool { [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.65s [INFO] running `"docker" "inspect" "748873cd7f17eb2d7a41790586f71b60417f66f4740b6b1937d56e177d7e79d7"` [INFO] running `"docker" "rm" "-f" "748873cd7f17eb2d7a41790586f71b60417f66f4740b6b1937d56e177d7e79d7"` [INFO] [stdout] 748873cd7f17eb2d7a41790586f71b60417f66f4740b6b1937d56e177d7e79d7