[INFO] cloning repository https://github.com/bjmayor/rust-dl-from-scratch [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bjmayor/rust-dl-from-scratch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbjmayor%2Frust-dl-from-scratch", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbjmayor%2Frust-dl-from-scratch'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3931a0121863e1fc9db16771bfdacc55bb21f523 [INFO] testing bjmayor/rust-dl-from-scratch against master#b03b3a7ec92682be2917540b679478d41c95a30c for pr-137122-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbjmayor%2Frust-dl-from-scratch" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/bjmayor/rust-dl-from-scratch [INFO] finished tweaking git repo https://github.com/bjmayor/rust-dl-from-scratch [INFO] tweaked toml for git repo https://github.com/bjmayor/rust-dl-from-scratch written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/bjmayor/rust-dl-from-scratch on toolchain b03b3a7ec92682be2917540b679478d41c95a30c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/bjmayor/rust-dl-from-scratch 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" "+b03b3a7ec92682be2917540b679478d41c95a30c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 18428caa4d06738ffb8402d11cd4e4e621c2d1878d6ce72686eaf7cc3ad9e988 [INFO] running `Command { std: "docker" "start" "-a" "18428caa4d06738ffb8402d11cd4e4e621c2d1878d6ce72686eaf7cc3ad9e988", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "18428caa4d06738ffb8402d11cd4e4e621c2d1878d6ce72686eaf7cc3ad9e988", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18428caa4d06738ffb8402d11cd4e4e621c2d1878d6ce72686eaf7cc3ad9e988", kill_on_drop: false }` [INFO] [stdout] 18428caa4d06738ffb8402d11cd4e4e621c2d1878d6ce72686eaf7cc3ad9e988 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5742a82380328d0a5de085e82ad8a8f100003e76304acd395a895f622ae5db99 [INFO] running `Command { std: "docker" "start" "-a" "5742a82380328d0a5de085e82ad8a8f100003e76304acd395a895f622ae5db99", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.173 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ndarray v0.16.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling rand_distr v0.5.1 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling ndarray-rand v0.15.0 [INFO] [stderr] Compiling rust-dl-from-scratch v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Ix1`, `Ix2`, `arr1`, and `arr2` [INFO] [stdout] --> src/chapter02/grad.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{Array, Dimension, Ix1, Ix2, NdIndex, arr1, arr2}; [INFO] [stdout] | ^^^ ^^^ ^^^^ ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_chapter01` is never used [INFO] [stdout] --> src/chapter01/perceptron.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn run_chapter01() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perceptron` is never used [INFO] [stdout] --> src/chapter01/perceptron.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn perceptron(x: &Array1, w: &Array1, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.82s [INFO] running `Command { std: "docker" "inspect" "5742a82380328d0a5de085e82ad8a8f100003e76304acd395a895f622ae5db99", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5742a82380328d0a5de085e82ad8a8f100003e76304acd395a895f622ae5db99", kill_on_drop: false }` [INFO] [stdout] 5742a82380328d0a5de085e82ad8a8f100003e76304acd395a895f622ae5db99 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fdb64272392ba0d5ce6ede076ab13d4d90330f13dbbfdb822d5564aa53074e3e [INFO] running `Command { std: "docker" "start" "-a" "fdb64272392ba0d5ce6ede076ab13d4d90330f13dbbfdb822d5564aa53074e3e", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.173 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling clap_builder v4.5.40 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling syn v2.0.103 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rand_distr v0.5.1 [INFO] [stderr] Compiling ndarray v0.16.1 [INFO] [stderr] Compiling clap v4.5.40 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling ndarray-rand v0.15.0 [INFO] [stderr] Compiling rust-dl-from-scratch v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Ix1`, `Ix2`, `arr1`, and `arr2` [INFO] [stdout] --> src/chapter02/grad.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{Array, Dimension, Ix1, Ix2, NdIndex, arr1, arr2}; [INFO] [stdout] | ^^^ ^^^ ^^^^ ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stdout] warning: function `run_chapter01` is never used [INFO] [stdout] --> src/chapter01/perceptron.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn run_chapter01() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perceptron` is never used [INFO] [stdout] --> src/chapter01/perceptron.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn perceptron(x: &Array1, w: &Array1, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 35.40s [INFO] running `Command { std: "docker" "inspect" "fdb64272392ba0d5ce6ede076ab13d4d90330f13dbbfdb822d5564aa53074e3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fdb64272392ba0d5ce6ede076ab13d4d90330f13dbbfdb822d5564aa53074e3e", kill_on_drop: false }` [INFO] [stdout] fdb64272392ba0d5ce6ede076ab13d4d90330f13dbbfdb822d5564aa53074e3e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+b03b3a7ec92682be2917540b679478d41c95a30c" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b39e8c52a75fd4bfc566a9448b64dfe239a7209d50d0c5d81fe1658bf6ccb98d [INFO] running `Command { std: "docker" "start" "-a" "b39e8c52a75fd4bfc566a9448b64dfe239a7209d50d0c5d81fe1658bf6ccb98d", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `Ix1`, `Ix2`, `arr1`, and `arr2` [INFO] [stderr] --> src/chapter02/grad.rs:2:33 [INFO] [stderr] | [INFO] [stderr] 2 | use ndarray::{Array, Dimension, Ix1, Ix2, NdIndex, arr1, arr2}; [INFO] [stderr] | ^^^ ^^^ ^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `rust-dl-from-scratch` (lib) generated 1 warning (run `cargo fix --lib -p rust-dl-from-scratch` to apply 1 suggestion) [INFO] [stderr] warning: function `run_chapter01` is never used [INFO] [stderr] --> src/chapter01/perceptron.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn run_chapter01() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `perceptron` is never used [INFO] [stderr] --> src/chapter01/perceptron.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | fn perceptron(x: &Array1, w: &Array1, b: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rust-dl-from-scratch` (bin "rust-dl-from-scratch" test) generated 2 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_dl_from_scratch-333823a36362cb3f) [INFO] [stdout] [INFO] [stdout] running 22 tests [INFO] [stdout] test chapter01::perceptron::tests::test_or_gate ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_xor_gate ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_and_gate ... ok [INFO] [stdout] test chapter02::activation::tests::test_sigmoid ... ok [INFO] [stdout] test chapter02::activation::tests::test_softmax ... ok [INFO] [stdout] test chapter02::activation::tests::test_softmax_numerical_stability ... ok [INFO] [stdout] test chapter02::activation::tests::test_sigmoid_matrix ... ok [INFO] [stdout] test chapter02::grad::tests::test_matrix_gradient ... ok [INFO] [stdout] test chapter02::activation::tests::test_softmax_matrix ... ok [INFO] [stdout] test chapter02::grad::tests::test_numerical_diff ... ok [INFO] [stdout] test chapter02::grad::tests::test_vector_gradient ... ok [INFO] [stdout] test chapter02::loss::tests::test_mse ... ok [INFO] [stdout] test chapter02::network::tests::test_dot ... ok [INFO] [stdout] test chapter02::loss::tests::test_cross_entropy ... ok [INFO] [stdout] test chapter02::loss::tests::test_cross_entropy_optimized ... ok [INFO] [stdout] test chapter02::network::tests::test_matrix_predict_shape ... ok [INFO] [stdout] test chapter02::network::tests::test_matrix_predict_sum_1 ... ok [INFO] [stdout] test chapter02::network::tests::test_predict_shape ... ok [INFO] [stdout] test chapter02::network::tests::test_softmax ... ok [INFO] [stdout] test chapter02::network::tests::test_predict_sum_1 ... ok [INFO] [stdout] test chapter02::network::tests::test_sigmoid ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_nand_gate ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_dl_from_scratch-51c47e75cc4a4191) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test chapter01::perceptron::tests::test_and_gate ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_nand_gate ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_or_gate ... ok [INFO] [stdout] test chapter01::perceptron::tests::test_xor_gate ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests rust_dl_from_scratch [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; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b39e8c52a75fd4bfc566a9448b64dfe239a7209d50d0c5d81fe1658bf6ccb98d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b39e8c52a75fd4bfc566a9448b64dfe239a7209d50d0c5d81fe1658bf6ccb98d", kill_on_drop: false }` [INFO] [stdout] b39e8c52a75fd4bfc566a9448b64dfe239a7209d50d0c5d81fe1658bf6ccb98d