[INFO] updating cached repository joshuaholmes/rustboy9001 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/joshuaholmes/rustboy9001 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/joshuaholmes/rustboy9001" "work/ex/clippy-test-run/sources/stable/gh/joshuaholmes/rustboy9001"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/joshuaholmes/rustboy9001'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/joshuaholmes/rustboy9001" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joshuaholmes/rustboy9001"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joshuaholmes/rustboy9001'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] abcb864f7177456b563db525159cd2666ff0ceef [INFO] sha for GitHub repo joshuaholmes/rustboy9001: abcb864f7177456b563db525159cd2666ff0ceef [INFO] validating manifest of joshuaholmes/rustboy9001 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of joshuaholmes/rustboy9001 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing joshuaholmes/rustboy9001 [INFO] finished frobbing joshuaholmes/rustboy9001 [INFO] frobbed toml for joshuaholmes/rustboy9001 written to work/ex/clippy-test-run/sources/stable/gh/joshuaholmes/rustboy9001/Cargo.toml [INFO] started frobbing joshuaholmes/rustboy9001 [INFO] finished frobbing joshuaholmes/rustboy9001 [INFO] frobbed toml for joshuaholmes/rustboy9001 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joshuaholmes/rustboy9001/Cargo.toml [INFO] crate joshuaholmes/rustboy9001 has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting joshuaholmes/rustboy9001 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joshuaholmes/rustboy9001:/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 -Dclippy::into_iter_on_array" "-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" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] c3da642e12db5c53dbfc6473018098288591d809f3269a24e59c9a297f5dbdda [INFO] running `"docker" "start" "-a" "c3da642e12db5c53dbfc6473018098288591d809f3269a24e59c9a297f5dbdda"` [INFO] [stderr] Checking rustboy9001 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | entry_point: entry_point, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entry_point` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | nintendo_logo: nintendo_logo, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nintendo_logo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:395:13 [INFO] [stderr] | [INFO] [stderr] 395 | cgb_flag: cgb_flag, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cgb_flag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:396:13 [INFO] [stderr] | [INFO] [stderr] 396 | sgb_flag: sgb_flag, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sgb_flag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | cartridge_type: cartridge_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cartridge_type` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:398:13 [INFO] [stderr] | [INFO] [stderr] 398 | rom_size: rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rom_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:399:13 [INFO] [stderr] | [INFO] [stderr] 399 | ram_size: ram_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `ram_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:400:13 [INFO] [stderr] | [INFO] [stderr] 400 | destination_code: destination_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:405:13 [INFO] [stderr] | [INFO] [stderr] 405 | new_cartridge: new_cartridge, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_cartridge` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:390:13 [INFO] [stderr] | [INFO] [stderr] 390 | entry_point: entry_point, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entry_point` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | nintendo_logo: nintendo_logo, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nintendo_logo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:395:13 [INFO] [stderr] | [INFO] [stderr] 395 | cgb_flag: cgb_flag, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cgb_flag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:396:13 [INFO] [stderr] | [INFO] [stderr] 396 | sgb_flag: sgb_flag, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sgb_flag` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | cartridge_type: cartridge_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cartridge_type` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:398:13 [INFO] [stderr] | [INFO] [stderr] 398 | rom_size: rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rom_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:399:13 [INFO] [stderr] | [INFO] [stderr] 399 | ram_size: ram_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `ram_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:400:13 [INFO] [stderr] | [INFO] [stderr] 400 | destination_code: destination_code, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `destination_code` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:405:13 [INFO] [stderr] | [INFO] [stderr] 405 | new_cartridge: new_cartridge, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_cartridge` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/util.rs:9:31 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn get_subarray_of_vector(mut arr: &mut [u8], vec: &Vec, start: usize) { [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rom.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | / match file.read_to_end(&mut buf) { [INFO] [stderr] 336 | | Err(e) => panic!("Couldn't read ROM file. Error message: {}", Error::description(&e)), [INFO] [stderr] 337 | | Ok(_) => (), [INFO] [stderr] 338 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = file.read_to_end(&mut buf) { panic!("Couldn't read ROM file. Error message: {}", Error::description(&e)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:404:31 [INFO] [stderr] | [INFO] [stderr] 404 | global_checksum: ((buf[GLOBAL_CHECKSUM_ADDR] as u16) << 8) | (buf[GLOBAL_CHECKSUM_ADDR + 1] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[GLOBAL_CHECKSUM_ADDR])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:404:74 [INFO] [stderr] | [INFO] [stderr] 404 | global_checksum: ((buf[GLOBAL_CHECKSUM_ADDR] as u16) << 8) | (buf[GLOBAL_CHECKSUM_ADDR + 1] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[GLOBAL_CHECKSUM_ADDR + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:415:82 [INFO] [stderr] | [INFO] [stderr] 415 | calculated_header_checksum = calculated_header_checksum.wrapping_sub(self.rom_data[i] as u16).wrapping_sub(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rom_data[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:427:86 [INFO] [stderr] | [INFO] [stderr] 427 | calculated_global_checksum = calculated_global_checksum.wrapping_add(*x as u16); [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(*x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:9:56 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn get_subarray_of_vector(mut arr: &mut [u8], vec: &Vec, start: usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/util.rs:9:31 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn get_subarray_of_vector(mut arr: &mut [u8], vec: &Vec, start: usize) { [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] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rom.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | / match file.read_to_end(&mut buf) { [INFO] [stderr] 336 | | Err(e) => panic!("Couldn't read ROM file. Error message: {}", Error::description(&e)), [INFO] [stderr] 337 | | Ok(_) => (), [INFO] [stderr] 338 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = file.read_to_end(&mut buf) { panic!("Couldn't read ROM file. Error message: {}", Error::description(&e)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:404:31 [INFO] [stderr] | [INFO] [stderr] 404 | global_checksum: ((buf[GLOBAL_CHECKSUM_ADDR] as u16) << 8) | (buf[GLOBAL_CHECKSUM_ADDR + 1] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[GLOBAL_CHECKSUM_ADDR])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:404:74 [INFO] [stderr] | [INFO] [stderr] 404 | global_checksum: ((buf[GLOBAL_CHECKSUM_ADDR] as u16) << 8) | (buf[GLOBAL_CHECKSUM_ADDR + 1] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(buf[GLOBAL_CHECKSUM_ADDR + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:415:82 [INFO] [stderr] | [INFO] [stderr] 415 | calculated_header_checksum = calculated_header_checksum.wrapping_sub(self.rom_data[i] as u16).wrapping_sub(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rom_data[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:427:86 [INFO] [stderr] | [INFO] [stderr] 427 | calculated_global_checksum = calculated_global_checksum.wrapping_add(*x as u16); [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(*x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/util.rs:9:56 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn get_subarray_of_vector(mut arr: &mut [u8], vec: &Vec, start: usize) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.86s [INFO] running `"docker" "inspect" "c3da642e12db5c53dbfc6473018098288591d809f3269a24e59c9a297f5dbdda"` [INFO] running `"docker" "rm" "-f" "c3da642e12db5c53dbfc6473018098288591d809f3269a24e59c9a297f5dbdda"` [INFO] [stdout] c3da642e12db5c53dbfc6473018098288591d809f3269a24e59c9a297f5dbdda