[INFO] fetching crate defmt-rtt-target 0.3.0... [INFO] testing defmt-rtt-target-0.3.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7 [INFO] extracting crate defmt-rtt-target 0.3.0 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate defmt-rtt-target 0.3.0 [INFO] finished tweaking crates.io crate defmt-rtt-target 0.3.0 [INFO] tweaked toml for crates.io crate defmt-rtt-target 0.3.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate defmt-rtt-target 0.3.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 27 packages to latest compatible versions [INFO] [stderr] Adding defmt v0.3.100 (available: v1.0.1) [INFO] [stderr] Adding rtt-target v0.3.1 (available: v0.6.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ufmt-write v0.1.0 [INFO] [stderr] Downloaded rtt-target v0.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d564c5086186ac88af49056a811ad918cfdf02270c1d622d21d3d5cd8de9cfde [INFO] running `Command { std: "docker" "start" "-a" "d564c5086186ac88af49056a811ad918cfdf02270c1d622d21d3d5cd8de9cfde", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d564c5086186ac88af49056a811ad918cfdf02270c1d622d21d3d5cd8de9cfde", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d564c5086186ac88af49056a811ad918cfdf02270c1d622d21d3d5cd8de9cfde", kill_on_drop: false }` [INFO] [stdout] d564c5086186ac88af49056a811ad918cfdf02270c1d622d21d3d5cd8de9cfde [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 44ea1340ba241607166d2deeb60f2d686b570ecf76f95e9d996d7084165ba3e5 [INFO] running `Command { std: "docker" "start" "-a" "44ea1340ba241607166d2deeb60f2d686b570ecf76f95e9d996d7084165ba3e5", kill_on_drop: false }` [INFO] [stderr] Compiling defmt-macros v1.0.1 [INFO] [stderr] Compiling defmt v1.0.1 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling ufmt-write v0.1.0 [INFO] [stderr] Compiling rtt-target v0.3.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling defmt-parser v1.0.0 [INFO] [stderr] Compiling defmt v0.3.100 [INFO] [stderr] Compiling defmt-rtt-target v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 38 | unsafe { ENCODER.start_frame(do_write) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | ENCODER.end_frame(do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | ENCODER.write(bytes, do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:62:26 [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &mut CHANNEL { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &raw mut CHANNEL { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.20s [INFO] running `Command { std: "docker" "inspect" "44ea1340ba241607166d2deeb60f2d686b570ecf76f95e9d996d7084165ba3e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "44ea1340ba241607166d2deeb60f2d686b570ecf76f95e9d996d7084165ba3e5", kill_on_drop: false }` [INFO] [stdout] 44ea1340ba241607166d2deeb60f2d686b570ecf76f95e9d996d7084165ba3e5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d17a15daaa5bdb2f8ac09d65068210c01a371027904f18bc12b87936a321e8dd [INFO] running `Command { std: "docker" "start" "-a" "d17a15daaa5bdb2f8ac09d65068210c01a371027904f18bc12b87936a321e8dd", kill_on_drop: false }` [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 38 | unsafe { ENCODER.start_frame(do_write) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | ENCODER.end_frame(do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling defmt-rtt-target v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | ENCODER.write(bytes, do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:62:26 [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &mut CHANNEL { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &raw mut CHANNEL { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 38 | unsafe { ENCODER.start_frame(do_write) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | ENCODER.end_frame(do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | ENCODER.write(bytes, do_write); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/lib.rs:62:26 [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &mut CHANNEL { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 62 | if let Some(c) = &raw mut CHANNEL { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] running `Command { std: "docker" "inspect" "d17a15daaa5bdb2f8ac09d65068210c01a371027904f18bc12b87936a321e8dd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d17a15daaa5bdb2f8ac09d65068210c01a371027904f18bc12b87936a321e8dd", kill_on_drop: false }` [INFO] [stdout] d17a15daaa5bdb2f8ac09d65068210c01a371027904f18bc12b87936a321e8dd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1348e6de43f1c0eb0bcc62c4fbbc13b6c44d5b711ba7daf4bca56a28860fdee8 [INFO] running `Command { std: "docker" "start" "-a" "1348e6de43f1c0eb0bcc62c4fbbc13b6c44d5b711ba7daf4bca56a28860fdee8", kill_on_drop: false }` [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | unsafe { ENCODER.start_frame(do_write) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | ENCODER.end_frame(do_write); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | ENCODER.write(bytes, do_write); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/lib.rs:62:26 [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(c) = &mut CHANNEL { [INFO] [stderr] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] help: use `&raw mut` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 62 | if let Some(c) = &raw mut CHANNEL { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: `defmt-rtt-target` (lib) generated 4 warnings [INFO] [stderr] warning: `defmt-rtt-target` (lib test) generated 4 warnings (4 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/defmt_rtt_target-5a99fd2d4601a901) [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 defmt_rtt_target [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" "1348e6de43f1c0eb0bcc62c4fbbc13b6c44d5b711ba7daf4bca56a28860fdee8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1348e6de43f1c0eb0bcc62c4fbbc13b6c44d5b711ba7daf4bca56a28860fdee8", kill_on_drop: false }` [INFO] [stdout] 1348e6de43f1c0eb0bcc62c4fbbc13b6c44d5b711ba7daf4bca56a28860fdee8