[INFO] updating cached repository https://github.com/CheukNgai/PageRank_Timely [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 2828a9534788794f7c93d9d888eb8170488b1a7c [INFO] testing CheukNgai/PageRank_Timely against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCheukNgai%2FPageRank_Timely" "/workspace/builds/worker-11/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 12% (93/718) Checking out files: 13% (94/718) Checking out files: 13% (98/718) Checking out files: 14% (101/718) Checking out files: 15% (108/718) Checking out files: 16% (115/718) Checking out files: 17% (123/718) Checking out files: 18% (130/718) Checking out files: 19% (137/718) Checking out files: 20% (144/718) Checking out files: 21% (151/718) Checking out files: 21% (154/718) Checking out files: 22% (158/718) Checking out files: 23% (166/718) Checking out files: 24% (173/718) Checking out files: 25% (180/718) Checking out files: 26% (187/718) Checking out files: 27% (194/718) Checking out files: 28% (202/718) Checking out files: 29% (209/718) Checking out files: 30% (216/718) Checking out files: 31% (223/718) Checking out files: 32% (230/718) Checking out files: 33% (237/718) Checking out files: 34% (245/718) Checking out files: 35% (252/718) Checking out files: 36% (259/718) Checking out files: 37% (266/718) Checking out files: 38% (273/718) Checking out files: 39% (281/718) Checking out files: 40% (288/718) Checking out files: 41% (295/718) Checking out files: 42% (302/718) Checking out files: 43% (309/718) Checking out files: 44% (316/718) Checking out files: 45% (324/718) Checking out files: 46% (331/718) Checking out files: 47% (338/718) Checking out files: 48% (345/718) Checking out files: 49% (352/718) Checking out files: 50% (359/718) Checking out files: 51% (367/718) Checking out files: 52% (374/718) Checking out files: 53% (381/718) Checking out files: 54% (388/718) Checking out files: 55% (395/718) Checking out files: 56% (403/718) Checking out files: 57% (410/718) Checking out files: 58% (417/718) Checking out files: 59% (424/718) Checking out files: 60% (431/718) Checking out files: 61% (438/718) Checking out files: 62% (446/718) Checking out files: 63% (453/718) Checking out files: 63% (459/718) Checking out files: 64% (460/718) Checking out files: 65% (467/718) Checking out files: 66% (474/718) Checking out files: 67% (482/718) Checking out files: 68% (489/718) Checking out files: 69% (496/718) Checking out files: 70% (503/718) Checking out files: 71% (510/718) Checking out files: 72% (517/718) Checking out files: 73% (525/718) Checking out files: 74% (532/718) Checking out files: 75% (539/718) Checking out files: 76% (546/718) Checking out files: 77% (553/718) Checking out files: 78% (561/718) Checking out files: 79% (568/718) Checking out files: 80% (575/718) Checking out files: 81% (582/718) Checking out files: 82% (589/718) Checking out files: 83% (596/718) Checking out files: 84% (604/718) Checking out files: 85% (611/718) Checking out files: 86% (618/718) Checking out files: 87% (625/718) Checking out files: 88% (632/718) Checking out files: 89% (640/718) Checking out files: 90% (647/718) Checking out files: 91% (654/718) Checking out files: 92% (661/718) Checking out files: 93% (668/718) Checking out files: 94% (675/718) Checking out files: 95% (683/718) Checking out files: 96% (690/718) Checking out files: 97% (697/718) Checking out files: 98% (704/718) Checking out files: 99% (711/718) Checking out files: 100% (718/718) Checking out files: 100% (718/718), done. [INFO] validating manifest of git repo https://github.com/CheukNgai/PageRank_Timely on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/CheukNgai/PageRank_Timely [INFO] finished tweaking git repo https://github.com/CheukNgai/PageRank_Timely [INFO] tweaked toml for git repo https://github.com/CheukNgai/PageRank_Timely written to /workspace/builds/worker-11/source/Cargo.toml [INFO] crate git repo https://github.com/CheukNgai/PageRank_Timely already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 6d7f230c88ada8593ddd608e95c26a5c9e4150ee6f0f19a1deab4bc9322b0346 [INFO] running `"docker" "start" "-a" "6d7f230c88ada8593ddd608e95c26a5c9e4150ee6f0f19a1deab4bc9322b0346"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling abomonation v0.5.0 [INFO] [stderr] Compiling file v1.1.2 [INFO] [stderr] Compiling timely_sort v0.1.6 [INFO] [stderr] Compiling getopts v0.2.18 [INFO] [stderr] Compiling time v0.1.40 [INFO] [stderr] Compiling rand v0.5.4 [INFO] [stderr] Compiling synstructure v0.6.1 [INFO] [stderr] Compiling abomonation_derive v0.3.0 [INFO] [stderr] Compiling timely_communication v0.6.0 [INFO] [stderr] Compiling timely v0.6.0 [INFO] [stderr] Compiling pagerank v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | if (index == 0) { [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `diff` [INFO] [stderr] --> src/main.rs:115:43 [INFO] [stderr] | [INFO] [stderr] 115 | ... for (dst, diff) in rank_changes.iter_mut() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_diff` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | ... let mut delta = ranks[src].clone(); [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/main.rs:138:41 [INFO] [stderr] | [INFO] [stderr] 138 | ... let mut dst_num = dsts.len(); [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/main.rs:140:45 [INFO] [stderr] | [INFO] [stderr] 140 | ... let mut delta = ranks[src].clone() / dst_num as f32; [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/main.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let mut round = 0; [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/main.rs:187:6 [INFO] [stderr] | [INFO] [stderr] 187 | let mut file = BufReader::new(&f); [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/main.rs:192:13 [INFO] [stderr] | [INFO] [stderr] 192 | let mut tuple = l.split_whitespace(); [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/main.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | let mut node_number = node_list.len(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable `default_PR` should have a snake case name [INFO] [stderr] --> src/main.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let default_PR:f32 = 1.0 / node_number as f32; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `default_pr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.94s [INFO] running `"docker" "inspect" "6d7f230c88ada8593ddd608e95c26a5c9e4150ee6f0f19a1deab4bc9322b0346"` [INFO] running `"docker" "rm" "-f" "6d7f230c88ada8593ddd608e95c26a5c9e4150ee6f0f19a1deab4bc9322b0346"` [INFO] [stdout] 6d7f230c88ada8593ddd608e95c26a5c9e4150ee6f0f19a1deab4bc9322b0346 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 1b0bedfae74c170971fa265d6ea0b8d4d9cf06c32231a07fde452e7ec93df964 [INFO] running `"docker" "start" "-a" "1b0bedfae74c170971fa265d6ea0b8d4d9cf06c32231a07fde452e7ec93df964"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling pagerank v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | if (index == 0) { [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `diff` [INFO] [stderr] --> src/main.rs:115:43 [INFO] [stderr] | [INFO] [stderr] 115 | ... for (dst, diff) in rank_changes.iter_mut() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_diff` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | ... let mut delta = ranks[src].clone(); [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/main.rs:138:41 [INFO] [stderr] | [INFO] [stderr] 138 | ... let mut dst_num = dsts.len(); [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/main.rs:140:45 [INFO] [stderr] | [INFO] [stderr] 140 | ... let mut delta = ranks[src].clone() / dst_num as f32; [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/main.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let mut round = 0; [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/main.rs:187:6 [INFO] [stderr] | [INFO] [stderr] 187 | let mut file = BufReader::new(&f); [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/main.rs:192:13 [INFO] [stderr] | [INFO] [stderr] 192 | let mut tuple = l.split_whitespace(); [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/main.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | let mut node_number = node_list.len(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable `default_PR` should have a snake case name [INFO] [stderr] --> src/main.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let default_PR:f32 = 1.0 / node_number as f32; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `default_pr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.04s [INFO] running `"docker" "inspect" "1b0bedfae74c170971fa265d6ea0b8d4d9cf06c32231a07fde452e7ec93df964"` [INFO] running `"docker" "rm" "-f" "1b0bedfae74c170971fa265d6ea0b8d4d9cf06c32231a07fde452e7ec93df964"` [INFO] [stdout] 1b0bedfae74c170971fa265d6ea0b8d4d9cf06c32231a07fde452e7ec93df964 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stdout] 960e676a2e0683d6c25f7e6908ac078b37c78eb785be2071d3dc214ec9b086e5 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `"docker" "start" "-a" "960e676a2e0683d6c25f7e6908ac078b37c78eb785be2071d3dc214ec9b086e5"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | if (index == 0) { [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `diff` [INFO] [stderr] --> src/main.rs:115:43 [INFO] [stderr] | [INFO] [stderr] 115 | ... for (dst, diff) in rank_changes.iter_mut() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_diff` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:95:36 [INFO] [stderr] | [INFO] [stderr] 95 | ... let mut delta = ranks[src].clone(); [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/main.rs:138:41 [INFO] [stderr] | [INFO] [stderr] 138 | ... let mut dst_num = dsts.len(); [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/main.rs:140:45 [INFO] [stderr] | [INFO] [stderr] 140 | ... let mut delta = ranks[src].clone() / dst_num as f32; [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/main.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | let mut round = 0; [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/main.rs:187:6 [INFO] [stderr] | [INFO] [stderr] 187 | let mut file = BufReader::new(&f); [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/main.rs:192:13 [INFO] [stderr] | [INFO] [stderr] 192 | let mut tuple = l.split_whitespace(); [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/main.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | let mut node_number = node_list.len(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable `default_PR` should have a snake case name [INFO] [stderr] --> src/main.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | let default_PR:f32 = 1.0 / node_number as f32; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `default_pr` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/pagerank-72c5933e6d08707b [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "960e676a2e0683d6c25f7e6908ac078b37c78eb785be2071d3dc214ec9b086e5"` [INFO] running `"docker" "rm" "-f" "960e676a2e0683d6c25f7e6908ac078b37c78eb785be2071d3dc214ec9b086e5"` [INFO] [stdout] 960e676a2e0683d6c25f7e6908ac078b37c78eb785be2071d3dc214ec9b086e5