[INFO] cloning repository https://github.com/foudfou/cryptopals [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/foudfou/cryptopals" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffoudfou%2Fcryptopals", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffoudfou%2Fcryptopals'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ef8ee2b2c038af542efbe39abf713289897ffab5 [INFO] testing foudfou/cryptopals against master#62efba8a050c64249dab942951bb28f710208bc8 for pr-90799 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffoudfou%2Fcryptopals" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/foudfou/cryptopals on toolchain 62efba8a050c64249dab942951bb28f710208bc8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/foudfou/cryptopals [INFO] finished tweaking git repo https://github.com/foudfou/cryptopals [INFO] tweaked toml for git repo https://github.com/foudfou/cryptopals written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/foudfou/cryptopals already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b667fd31ef74e7900828cff843ed7aab928448ad1bb9f9e5203fa68b66ffda89 [INFO] running `Command { std: "docker" "start" "-a" "b667fd31ef74e7900828cff843ed7aab928448ad1bb9f9e5203fa68b66ffda89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b667fd31ef74e7900828cff843ed7aab928448ad1bb9f9e5203fa68b66ffda89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b667fd31ef74e7900828cff843ed7aab928448ad1bb9f9e5203fa68b66ffda89", kill_on_drop: false }` [INFO] [stdout] b667fd31ef74e7900828cff843ed7aab928448ad1bb9f9e5203fa68b66ffda89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71d1d70f7365eab5508f7cfb2b26b25b5e39f5ba3a529efc70dc3c0e8d087f98 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "71d1d70f7365eab5508f7cfb2b26b25b5e39f5ba3a529efc70dc3c0e8d087f98", kill_on_drop: false }` [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling pkg-config v0.3.17 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling rug v1.6.0 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling unicode-width v0.1.7 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling dirs-sys v0.3.4 [INFO] [stderr] Compiling getrandom v0.1.13 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling getopts v0.2.21 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling dirs v2.0.2 [INFO] [stderr] Compiling gmp-mpfr-sys v1.1.14 [INFO] [stderr] Compiling rand_chacha v0.2.1 [INFO] [stderr] Compiling rand v0.7.2 [INFO] [stderr] Compiling openssl-sys v0.9.53 [INFO] [stderr] Compiling openssl v0.10.26 [INFO] [stderr] Compiling cryptopals v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/main.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | Err(f) => panic!(f.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 32 | Err(f) => panic!("{}", f.to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5m 15s [INFO] running `Command { std: "docker" "inspect" "71d1d70f7365eab5508f7cfb2b26b25b5e39f5ba3a529efc70dc3c0e8d087f98", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71d1d70f7365eab5508f7cfb2b26b25b5e39f5ba3a529efc70dc3c0e8d087f98", kill_on_drop: false }` [INFO] [stdout] 71d1d70f7365eab5508f7cfb2b26b25b5e39f5ba3a529efc70dc3c0e8d087f98 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 40d3d0c60099f9e98876efb65610493e36f7d11eb95267b1c7640dd8e0342e90 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "40d3d0c60099f9e98876efb65610493e36f7d11eb95267b1c7640dd8e0342e90", kill_on_drop: false }` [INFO] [stderr] Compiling cryptopals v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/main.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | Err(f) => panic!(f.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to Display the message [INFO] [stdout] | [INFO] [stdout] 32 | Err(f) => panic!("{}", f.to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/rng.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | (((mask << beg) >> (32 - len)) & (u >> (32 - beg - len))) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 163 - (((mask << beg) >> (32 - len)) & (u >> (32 - beg - len))) [INFO] [stdout] 163 + ((mask << beg) >> (32 - len)) & (u >> (32 - beg - len)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/set4/chall31.rs:70:10 [INFO] [stdout] | [INFO] [stdout] 70 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 6.75s [INFO] running `Command { std: "docker" "inspect" "40d3d0c60099f9e98876efb65610493e36f7d11eb95267b1c7640dd8e0342e90", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "40d3d0c60099f9e98876efb65610493e36f7d11eb95267b1c7640dd8e0342e90", kill_on_drop: false }` [INFO] [stdout] 40d3d0c60099f9e98876efb65610493e36f7d11eb95267b1c7640dd8e0342e90 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+62efba8a050c64249dab942951bb28f710208bc8" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 09ba2751ec708e96374574122be77d039ea9fea80b561899cce3d66522cd51c3 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "09ba2751ec708e96374574122be77d039ea9fea80b561899cce3d66522cd51c3", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/rng.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | (((mask << beg) >> (32 - len)) & (u >> (32 - beg - len))) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 163 - (((mask << beg) >> (32 - len)) & (u >> (32 - beg - len))) [INFO] [stderr] 163 + ((mask << beg) >> (32 - len)) & (u >> (32 - beg - len)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/set4/chall31.rs:70:10 [INFO] [stderr] | [INFO] [stderr] 70 | }; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `cryptopals` (lib test) generated 2 warnings [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/main.rs:32:26 [INFO] [stderr] | [INFO] [stderr] 32 | Err(f) => panic!(f.to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: add a "{}" format string to Display the message [INFO] [stderr] | [INFO] [stderr] 32 | Err(f) => panic!("{}", f.to_string()), [INFO] [stderr] | +++++ [INFO] [stderr] [INFO] [stderr] warning: `cryptopals` (bin "cryptopals" test) generated 1 warning [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/cryptopals-a74c6166acf9b3d6) [INFO] [stdout] [INFO] [stdout] running 70 tests [INFO] [stdout] test hmac::tests::test_hmac ... ok [INFO] [stdout] test aes::tests::test_detect_ecb ... ok [INFO] [stdout] test b64::tests::test_hex2bytes_success ... ok [INFO] [stdout] test b64::tests::test_hex2bytes_fail ... ok [INFO] [stdout] test b64::tests::test_hex2base64 ... ok [INFO] [stdout] test b64::tests::test_encode ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_pad ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_unpad ... ok [INFO] [stdout] test md4::tests::test_md4_collision ... ok [INFO] [stdout] test md4::tests::test_md4 ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_unpad_2 ... ok [INFO] [stdout] test b64::tests::test_decode ... ok [INFO] [stdout] test md4::tests::test_md_padding ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_unpad_fail_3 ... ok [INFO] [stdout] test rng::tests::test_clone_mt19937 ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_unpad_fail_2 ... ok [INFO] [stdout] test pkcs::tests::test_pkcs7_unpad_fail ... ok [INFO] [stdout] test rng::tests::test_get_bits ... ok [INFO] [stdout] test par::tests::test_thread_pool ... ok [INFO] [stdout] test rng::tests::test_reverse_lshift_and_xor ... ok [INFO] [stdout] test rng::tests::test_mt19937 ... ok [INFO] [stdout] test rng::tests::test_crack_stream_cipher ... ok [INFO] [stdout] test aes::tests::test_detect_ecb_sample ... ok [INFO] [stdout] test rng::tests::test_crack_password_reset_token ... ok [INFO] [stdout] test rng::tests::test_reverse_rshift_xor ... ok [INFO] [stdout] test rng::tests::test_untemper ... ok [INFO] [stdout] test rng::tests::test_stream_cipher ... ok [INFO] [stdout] test set2::chall13::tests::test_kv_parse ... ok [INFO] [stdout] test aes::tests::test_decrypt_cbc_sample ... ok [INFO] [stdout] test aes::tests::test_aes_128_ctr_encrypt ... ok [INFO] [stdout] test set2::chall12::tests::test_aes_128_cbc_encrypt ... ok [INFO] [stdout] test aes::tests::test_aes_128_ecb_decrypt ... ok [INFO] [stdout] test aes::tests::test_encrypt_cbc_sample ... ok [INFO] [stdout] test aes::tests::test_crack_ctr_random_access ... ok [INFO] [stdout] test set2::chall12::tests::test_aes_rand_detect ... ok [INFO] [stdout] test set2::chall16::tests::test_cbc_bitflip ... ok [INFO] [stdout] test set2::chall13::tests::test_profile_for_plain ... ok [INFO] [stdout] test set2::chall13::tests::test_profile_oracle ... ok [INFO] [stdout] test set2::chall17::tests::test_blk_size ... ok [INFO] [stdout] test set4::chall26::tests::test_ctr_bitflip ... ok [INFO] [stdout] test set2::chall16::tests::test_detect_prefix_size ... ok [INFO] [stdout] test set4::chall31::tests::test_hmac_sha1_timing_attack_artificial ... ignored [INFO] [stdout] test sha::tests::test_md_padding ... ok [INFO] [stdout] test set4::chall30::tests::test_md4_beak_keyed_mac_using_length_extension ... ok [INFO] [stdout] test set5::chall33::tests::test_diffie_hellman ... ok [INFO] [stdout] test set4::chall29::tests::test_sha1_beak_keyed_mac_using_length_extension ... ok [INFO] [stdout] test sha::tests::test_sha1_mac_verify ... ok [INFO] [stdout] test xor::tests::test_guess_single_byte_xor ... ok [INFO] [stdout] test xor::tests::test_fixed_xor ... ok [INFO] [stdout] test xor::tests::test_guess_xor_keylen ... ok [INFO] [stdout] test set4::chall27::tests::test_crack_cbc_with_iv_eq_key ... ok [INFO] [stdout] test xor::tests::test_popcount ... ok [INFO] [stdout] test xor::tests::test_hamming_distance ... ok [INFO] [stdout] test xor::tests::test_xor2 ... ok [INFO] [stdout] test xor::tests::test_xor_strict ... ok [INFO] [stdout] test rng::tests::test_get_bits_len_zero - should panic ... ok [INFO] [stdout] test rng::tests::test_get_bits_too_much - should panic ... ok [INFO] [stdout] test xor::tests::test_xor ... ok [INFO] [stdout] test xor::tests::test_guess_xor_short ... ok [INFO] [stdout] test aes::tests::test_fixed_nonce_ctr_2 ... ok [INFO] [stdout] test rng::tests::test_crack_mt19937_seed ... ok [INFO] [stdout] test set2::chall12::tests::test_ecb_oracle ... ok [INFO] [stdout] test aes::tests::test_fixed_nonce_ctr ... ok [INFO] [stdout] test set2::chall14::tests::test_ecb_oracle ... ok [INFO] [stdout] test xor::tests::test_guess_xor_long ... ok [INFO] [stdout] test xor::tests::test_detect_single_byte_xor ... ok [INFO] [stdout] test aes::tests::test_fixed_nonce_ctr_3 ... ok [INFO] [stdout] test sha::tests::test_sha1 ... ok [INFO] [stdout] test set2::chall17::tests::test_cbc_padding_oracle_blk ... ok [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/cryptopals-546d73c0ea06bca5) [INFO] [stdout] test set2::chall17::tests::test_cbc_padding_oracle ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 69 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 6.67s [INFO] [stdout] [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] [stderr] Doc-tests cryptopals [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" "09ba2751ec708e96374574122be77d039ea9fea80b561899cce3d66522cd51c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "09ba2751ec708e96374574122be77d039ea9fea80b561899cce3d66522cd51c3", kill_on_drop: false }` [INFO] [stdout] 09ba2751ec708e96374574122be77d039ea9fea80b561899cce3d66522cd51c3