[INFO] cloning repository https://github.com/Blakeinstein/fuse-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Blakeinstein/fuse-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlakeinstein%2Ffuse-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlakeinstein%2Ffuse-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c6854b72e2a48ff3f384abfaa9f44b34fca0c61f [INFO] testing Blakeinstein/fuse-rs against try#ce59db7a1b1b012fb2793c4641c1bdecad7a128b for pr-85530 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlakeinstein%2Ffuse-rs" "/workspace/builds/worker-6/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Blakeinstein/fuse-rs on toolchain ce59db7a1b1b012fb2793c4641c1bdecad7a128b [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Blakeinstein/fuse-rs [INFO] finished tweaking git repo https://github.com/Blakeinstein/fuse-rs [INFO] tweaked toml for git repo https://github.com/Blakeinstein/fuse-rs written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/Blakeinstein/fuse-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "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-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a509a9806bf8effa3e6a8fdb103df128fa2eab788c06b387728fda0ad5959df8 [INFO] running `Command { std: "docker" "start" "-a" "a509a9806bf8effa3e6a8fdb103df128fa2eab788c06b387728fda0ad5959df8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a509a9806bf8effa3e6a8fdb103df128fa2eab788c06b387728fda0ad5959df8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a509a9806bf8effa3e6a8fdb103df128fa2eab788c06b387728fda0ad5959df8", kill_on_drop: false }` [INFO] [stdout] a509a9806bf8effa3e6a8fdb103df128fa2eab788c06b387728fda0ad5959df8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cf0fec06a2a6f19fff4cc3910485081e8a80334f20fed7c8c078a546607051dc [INFO] running `Command { std: "docker" "start" "-a" "cf0fec06a2a6f19fff4cc3910485081e8a80334f20fed7c8c078a546607051dc", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.1 [INFO] [stderr] Compiling fuse-rust v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:628:28 [INFO] [stdout] | [INFO] [stdout] 628 | panic!(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 629 | | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | | &property.value [INFO] [stdout] 631 | | )); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 628 | panic!( [INFO] [stdout] 629 | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | &property.value [INFO] [stdout] 631 | ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:743:40 [INFO] [stdout] | [INFO] [stdout] 743 | ... panic!(format!( [INFO] [stdout] | ______________________________^ [INFO] [stdout] 744 | | ... "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | | ... &property.value [INFO] [stdout] 746 | | ... )) [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 743 | panic!( [INFO] [stdout] 744 | "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | &property.value [INFO] [stdout] 746 | ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.50s [INFO] running `Command { std: "docker" "inspect" "cf0fec06a2a6f19fff4cc3910485081e8a80334f20fed7c8c078a546607051dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cf0fec06a2a6f19fff4cc3910485081e8a80334f20fed7c8c078a546607051dc", kill_on_drop: false }` [INFO] [stdout] cf0fec06a2a6f19fff4cc3910485081e8a80334f20fed7c8c078a546607051dc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 90fa890efc74353605705988df0ad2a305a9fa91a224778af7aaa60fbb912c69 [INFO] running `Command { std: "docker" "start" "-a" "90fa890efc74353605705988df0ad2a305a9fa91a224778af7aaa60fbb912c69", kill_on_drop: false }` [INFO] [stderr] Compiling fuse-rust v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:628:28 [INFO] [stdout] | [INFO] [stdout] 628 | panic!(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 629 | | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | | &property.value [INFO] [stdout] 631 | | )); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 628 | panic!( [INFO] [stdout] 629 | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | &property.value [INFO] [stdout] 631 | ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:743:40 [INFO] [stdout] | [INFO] [stdout] 743 | ... panic!(format!( [INFO] [stdout] | ______________________________^ [INFO] [stdout] 744 | | ... "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | | ... &property.value [INFO] [stdout] 746 | | ... )) [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 743 | panic!( [INFO] [stdout] 744 | "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | &property.value [INFO] [stdout] 746 | ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:628:28 [INFO] [stdout] | [INFO] [stdout] 628 | panic!(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 629 | | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | | &property.value [INFO] [stdout] 631 | | )); [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 628 | panic!( [INFO] [stdout] 629 | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stdout] 630 | &property.value [INFO] [stdout] 631 | ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/lib.rs:743:40 [INFO] [stdout] | [INFO] [stdout] 743 | ... panic!(format!( [INFO] [stdout] | ______________________________^ [INFO] [stdout] 744 | | ... "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | | ... &property.value [INFO] [stdout] 746 | | ... )) [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = note: this is no longer accepted in Rust 2021 [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 743 | panic!( [INFO] [stdout] 744 | "Lookup doesnt contain requested value => {}.", [INFO] [stdout] 745 | &property.value [INFO] [stdout] 746 | ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.04s [INFO] running `Command { std: "docker" "inspect" "90fa890efc74353605705988df0ad2a305a9fa91a224778af7aaa60fbb912c69", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "90fa890efc74353605705988df0ad2a305a9fa91a224778af7aaa60fbb912c69", kill_on_drop: false }` [INFO] [stdout] 90fa890efc74353605705988df0ad2a305a9fa91a224778af7aaa60fbb912c69 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0fcbeecda8788ae1867ca84640c7e9d66a4af180dc27bd306b9e2bcf1d80411c [INFO] running `Command { std: "docker" "start" "-a" "0fcbeecda8788ae1867ca84640c7e9d66a4af180dc27bd306b9e2bcf1d80411c", kill_on_drop: false }` [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/lib.rs:628:28 [INFO] [stderr] | [INFO] [stderr] 628 | panic!(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 629 | | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stderr] 630 | | &property.value [INFO] [stderr] 631 | | )); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 628 | panic!( [INFO] [stderr] 629 | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stderr] 630 | &property.value [INFO] [stderr] 631 | ); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | ... panic!(format!( [INFO] [stderr] | ______________________________^ [INFO] [stderr] 744 | | ... "Lookup doesnt contain requested value => {}.", [INFO] [stderr] 745 | | ... &property.value [INFO] [stderr] 746 | | ... )) [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 743 | panic!( [INFO] [stderr] 744 | "Lookup doesnt contain requested value => {}.", [INFO] [stderr] 745 | &property.value [INFO] [stderr] 746 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/lib.rs:628:28 [INFO] [stderr] | [INFO] [stderr] 628 | panic!(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 629 | | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stderr] 630 | | &property.value [INFO] [stderr] 631 | | )); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panic)]` on by default [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 628 | panic!( [INFO] [stderr] 629 | "Lookup Failed: Lookup doesnt contain requested value => {}.", [INFO] [stderr] 630 | &property.value [INFO] [stderr] 631 | ); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | ... panic!(format!( [INFO] [stderr] | ______________________________^ [INFO] [stderr] 744 | | ... "Lookup doesnt contain requested value => {}.", [INFO] [stderr] 745 | | ... &property.value [INFO] [stderr] 746 | | ... )) [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = note: this is no longer accepted in Rust 2021 [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 743 | panic!( [INFO] [stderr] 744 | "Lookup doesnt contain requested value => {}.", [INFO] [stderr] 745 | &property.value [INFO] [stderr] 746 | ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/fuse_rust-473e8a5d47c15856) [INFO] [stdout] [INFO] [stderr] Doc-tests fuse-rust [INFO] [stdout] running 2 tests [INFO] [stdout] test tests::multibyte_chars_indices ... ok [INFO] [stdout] test tests::multibyte_chars ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test src/lib.rs - FuseProperty (line 22) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_iterable (line 470) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_string (line 444) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_string_list (line 511) ... ok [INFO] [stdout] test src/lib.rs - Pattern (line 74) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_fuse_list (line 581) ... ok [INFO] [stdout] test src/lib.rs - Fuseable (line 407) ... ok [INFO] [stdout] test src/lib.rs - Fuse (line 134) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_string (line 450) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search (line 354) ... ok [INFO] [stdout] test src/lib.rs - Fuse::search_text_in_fuse_list_with_chunk_size (line 680) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0fcbeecda8788ae1867ca84640c7e9d66a4af180dc27bd306b9e2bcf1d80411c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0fcbeecda8788ae1867ca84640c7e9d66a4af180dc27bd306b9e2bcf1d80411c", kill_on_drop: false }` [INFO] [stdout] 0fcbeecda8788ae1867ca84640c7e9d66a4af180dc27bd306b9e2bcf1d80411c