[INFO] fetching crate lucet-runtime-internals 0.6.1...
[INFO] testing lucet-runtime-internals-0.6.1 against beta-2021-08-01 for beta-1.55-1
[INFO] extracting crate lucet-runtime-internals 0.6.1 into /workspace/builds/worker-1/source
[INFO] validating manifest of crates.io crate lucet-runtime-internals 0.6.1 on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate lucet-runtime-internals 0.6.1
[INFO] finished tweaking crates.io crate lucet-runtime-internals 0.6.1
[INFO] tweaked toml for crates.io crate lucet-runtime-internals 0.6.1 written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded scrypt v0.5.0
[INFO] [stderr]   Downloaded derivative v1.0.4
[INFO] [stderr]   Downloaded salsa20 v0.7.2
[INFO] [stderr]   Downloaded minisign v0.5.23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1acae8ef49df9efe0e80a52fa6af974fce7308e421d3f9fa3c548667021a7371
[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" "1acae8ef49df9efe0e80a52fa6af974fce7308e421d3f9fa3c548667021a7371", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1acae8ef49df9efe0e80a52fa6af974fce7308e421d3f9fa3c548667021a7371", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1acae8ef49df9efe0e80a52fa6af974fce7308e421d3f9fa3c548667021a7371", kill_on_drop: false }`
[INFO] [stdout] 1acae8ef49df9efe0e80a52fa6af974fce7308e421d3f9fa3c548667021a7371
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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=warn" "-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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d3631dbfffa2a6923b04a3d05f41b4113226138451f8e31afef17753a285773
[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" "6d3631dbfffa2a6923b04a3d05f41b4113226138451f8e31afef17753a285773", kill_on_drop: false }`
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling cpufeatures v0.1.5
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling plain v0.2.3
[INFO] [stderr]    Compiling anyhow v1.0.42
[INFO] [stderr]    Compiling serde-big-array v0.2.0
[INFO] [stderr]    Compiling uuid v0.7.4
[INFO] [stderr]    Compiling nix v0.15.0
[INFO] [stderr]    Compiling parity-wasm v0.40.3
[INFO] [stderr]    Compiling cranelift-entity v0.51.0
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling lucet-runtime-internals v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling synstructure v0.12.5
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling lucet-runtime-macros v0.6.1
[INFO] [stderr]    Compiling serde_json v1.0.66
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling crypto-mac v0.10.1
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling cipher v0.2.5
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling pbkdf2 v0.6.0
[INFO] [stderr]    Compiling hmac v0.10.1
[INFO] [stderr]    Compiling sha2 v0.9.5
[INFO] [stderr]    Compiling salsa20 v0.7.2
[INFO] [stderr]    Compiling scroll v0.9.2
[INFO] [stderr]    Compiling raw-cpuid v6.1.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling scrypt v0.5.0
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling target-lexicon v0.8.1
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling flate2 v1.0.20
[INFO] [stderr]    Compiling rpassword v5.0.1
[INFO] [stderr]    Compiling getrandom v0.1.3
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling minisign v0.5.23
[INFO] [stderr]    Compiling scroll_derive v0.9.5
[INFO] [stderr]    Compiling derivative v1.0.4
[INFO] [stderr]    Compiling goblin v0.0.24
[INFO] [stderr]    Compiling object v0.14.1
[INFO] [stderr]    Compiling lucet-module v0.6.1
[INFO] [stdout] warning: attribute should be applied to a function or static
[INFO] [stdout]    --> src/instance/state.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     #[no_mangle]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 172 |     fn strsignal(sig: libc::c_int) -> *mut libc::c_char;
[INFO] [stdout]     |     ---------------------------------------------------- not a function or static
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:148:40
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap")));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:163:40
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:225:36
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:226:28
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:254:40
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:266:40
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:385:39
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!("{}", TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| std::panic::panic_any(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 39s
[INFO] running `Command { std: "docker" "inspect" "6d3631dbfffa2a6923b04a3d05f41b4113226138451f8e31afef17753a285773", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d3631dbfffa2a6923b04a3d05f41b4113226138451f8e31afef17753a285773", kill_on_drop: false }`
[INFO] [stdout] 6d3631dbfffa2a6923b04a3d05f41b4113226138451f8e31afef17753a285773
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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=warn" "-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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen" "--no-run" "--message-format=json", 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] 64a5b6b495f108bc04f1e03aa180022eb965cbb1116bea5d03d6546fb9f6e51e
[INFO] running `Command { std: "docker" "start" "-a" "64a5b6b495f108bc04f1e03aa180022eb965cbb1116bea5d03d6546fb9f6e51e", kill_on_drop: false }`
[INFO] [stdout] warning: attribute should be applied to a function or static
[INFO] [stdout]    --> src/instance/state.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     #[no_mangle]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 172 |     fn strsignal(sig: libc::c_int) -> *mut libc::c_char;
[INFO] [stdout]     |     ---------------------------------------------------- not a function or static
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:148:40
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap")));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:163:40
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:225:36
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:226:28
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:254:40
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:266:40
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:385:39
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!("{}", TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| std::panic::panic_any(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling lucet-runtime-internals v0.6.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/region/mmap.rs:486:10
[INFO] [stdout]     |
[INFO] [stdout] 486 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a function or static
[INFO] [stdout]    --> src/instance/state.rs:171:5
[INFO] [stdout]     |
[INFO] [stdout] 171 |     #[no_mangle]
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 172 |     fn strsignal(sig: libc::c_int) -> *mut libc::c_char;
[INFO] [stdout]     |     ---------------------------------------------------- not a function or static
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:148:40
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap")));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 148 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:163:40
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 163 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:210:36
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 211 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:225:36
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 225 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:226:28
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 226 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:254:40
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 254 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:266:40
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/vmctx.rs:385:39
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to Display the message
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| panic!("{}", TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 385 |             .unwrap_or_else(|| std::panic::panic_any(TerminationDetails::YieldTypeMismatch))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 7.21s
[INFO] running `Command { std: "docker" "inspect" "64a5b6b495f108bc04f1e03aa180022eb965cbb1116bea5d03d6546fb9f6e51e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64a5b6b495f108bc04f1e03aa180022eb965cbb1116bea5d03d6546fb9f6e51e", kill_on_drop: false }`
[INFO] [stdout] 64a5b6b495f108bc04f1e03aa180022eb965cbb1116bea5d03d6546fb9f6e51e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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=warn" "-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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-08-01" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8746c554aeaffdda639ca5d6b1c3508b4a1f64bfa96fc3a7a8e09140256d4055
[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" "8746c554aeaffdda639ca5d6b1c3508b4a1f64bfa96fc3a7a8e09140256d4055", kill_on_drop: false }`
[INFO] [stderr] warning: attribute should be applied to a function or static
[INFO] [stderr]    --> src/instance/state.rs:171:5
[INFO] [stderr]     |
[INFO] [stderr] 171 |     #[no_mangle]
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 172 |     fn strsignal(sig: libc::c_int) -> *mut libc::c_char;
[INFO] [stderr]     |     ---------------------------------------------------- not a function or static
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:148:40
[INFO] [stderr]     |
[INFO] [stderr] 148 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap")));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 148 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap")));
[INFO] [stderr]     |                                        ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 148 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap")));
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:163:40
[INFO] [stderr]     |
[INFO] [stderr] 163 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 163 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("heap_mut")));
[INFO] [stderr]     |                                        ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 163 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("heap_mut")));
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:210:36
[INFO] [stderr]     |
[INFO] [stderr] 210 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 210 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stderr]     |                                    ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 210 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx")),
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:211:28
[INFO] [stderr]     |
[INFO] [stderr] 211 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 211 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                            ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 211 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:225:36
[INFO] [stderr]     |
[INFO] [stderr] 225 |             Some(Err(_)) => panic!(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 225 |             Some(Err(_)) => panic!("{}", TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stderr]     |                                    ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 225 |             Some(Err(_)) => std::panic::panic_any(TerminationDetails::BorrowError("get_embed_ctx_mut")),
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:226:28
[INFO] [stderr]     |
[INFO] [stderr] 226 |             None => panic!(TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 226 |             None => panic!("{}", TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                            ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 226 |             None => std::panic::panic_any(TerminationDetails::CtxNotFound),
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:254:40
[INFO] [stderr]     |
[INFO] [stderr] 254 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals")));
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 254 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals")));
[INFO] [stderr]     |                                        ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 254 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals")));
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:266:40
[INFO] [stderr]     |
[INFO] [stderr] 266 |             .unwrap_or_else(|_| panic!(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 266 |             .unwrap_or_else(|_| panic!("{}", TerminationDetails::BorrowError("globals_mut")));
[INFO] [stderr]     |                                        ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 266 |             .unwrap_or_else(|_| std::panic::panic_any(TerminationDetails::BorrowError("globals_mut")));
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/vmctx.rs:385:39
[INFO] [stderr]     |
[INFO] [stderr] 385 |             .unwrap_or_else(|| panic!(TerminationDetails::YieldTypeMismatch))
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to Display the message
[INFO] [stderr]     |
[INFO] [stderr] 385 |             .unwrap_or_else(|| panic!("{}", TerminationDetails::YieldTypeMismatch))
[INFO] [stderr]     |                                       ^^^^^
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 385 |             .unwrap_or_else(|| std::panic::panic_any(TerminationDetails::YieldTypeMismatch))
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/region/mmap.rs:486:10
[INFO] [stderr]     |
[INFO] [stderr] 486 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `lucet-runtime-internals` (lib) generated 10 warnings
[INFO] [stderr] warning: `lucet-runtime-internals` (lib test) generated 11 warnings (10 duplicates)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/lucet_runtime_internals-9dbbb7a8a0a9e403)
[INFO] [stdout] 
[INFO] [stdout] running 66 tests
[INFO] [stdout] test alloc::tests::alloc_grow_reset ... ok
[INFO] [stdout] test alloc::tests::accept_small_guard_heap ... ok
[INFO] [stdout] test alloc::tests::reject_debug_sigstack_smaller_than_12kib ... ok
[INFO] [stdout] test alloc::tests::reject_sigstack_smaller_than_min ... ok
[INFO] [stdout] test alloc::tests::expand_heap_once ... ok
[INFO] [stdout] test alloc::tests::expand_heap_twice ... ok
[INFO] [stdout] test alloc::tests::guardless_expand_heap_once ... ok
[INFO] [stdout] test alloc::tests::expand_past_heap_limit ... ok
[INFO] [stdout] test alloc::tests::initial_empty_expand_heap_once ... ok
[INFO] [stdout] test alloc::tests::alloc_reset ... ok
[INFO] [stdout] test alloc::tests::context_stack_pattern ... ok
[INFO] [stdout] test alloc::tests::allocate_runtime_works ... ok
[INFO] [stdout] test alloc::tests::guardless_heap_create ... ok
[INFO] [stdout] test alloc::tests::reject_unaligned_sigstack ... ok
[INFO] [stdout] test alloc::tests::expand_past_spec_max ... ok
[INFO] [stdout] test context::tests::c_child::call_child_twice ... ok
[INFO] [stdout] test alloc::tests::context_alloc_child ... ok
[INFO] [stdout] test context::tests::c_child::call_returning_child ... ok
[INFO] [stdout] test alloc::tests::reject_undersized_address_space ... ok
[INFO] [stdout] test context::tests::c_child::call_child_setcontext ... ok
[INFO] [stdout] test alloc::tests::reject_initial_oversize_heap ... ok
[INFO] [stdout] test alloc::tests::reject_large_guard_heap ... ok
[INFO] [stdout] test alloc::tests::initial_empty_guardless_expand_heap_once ... ok
[INFO] [stdout] test alloc::tests::drop_region_first ... ok
[INFO] [stdout] test context::tests::c_child::test_child_10_args ... ok
[INFO] [stdout] test alloc::tests::slot_counts_work ... ok
[INFO] [stdout] test alloc::tests::reuse_slot_works ... ok
[INFO] [stdout] test context::tests::rust_child::call_returning_child ... ok
[INFO] [stdout] test context::tests::rust_child::child_10_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_10_fp_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_3_args ... ok
[INFO] [stdout] test context::tests::c_child::call_child ... ok
[INFO] [stdout] test context::tests::init_rejects_unaligned ... ok
[INFO] [stdout] test context::tests::rust_child::child_4_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_4_args ... ok
[INFO] [stdout] test context::tests::rust_child::call_child_twice ... ok
[INFO] [stdout] test context::tests::rust_child::call_child_setcontext_twice ... ok
[INFO] [stdout] test context::tests::rust_child::child_5_args ... ok
[INFO] [stdout] test context::tests::c_child::call_child_setcontext_twice ... ok
[INFO] [stdout] test context::tests::context_offsets_correct ... ok
[INFO] [stdout] test context::tests::rust_child::call_child ... ok
[INFO] [stdout] test context::tests::rust_child::call_child_setcontext ... ok
[INFO] [stdout] test context::tests::rust_child::guest_realloc_string ... ok
[INFO] [stdout] test context::tests::rust_child::child_9_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_9_fp_args ... ok
[INFO] [stdout] test context::tests::rust_child::guest_access_tls ... ok
[INFO] [stdout] test context::tests::rust_child::returning_add_f32 ... ok
[INFO] [stdout] test context::tests::rust_child::returning_add_f64 ... ok
[INFO] [stdout] test context::tests::rust_child::returning_add_u32 ... ok
[INFO] [stdout] test context::tests::rust_child::returning_add_u64 ... ok
[INFO] [stdout] test context::tests::rust_child::child_6_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_3_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_6_fp_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_7_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_8_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_7_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_8_fp_args ... ok
[INFO] [stdout] test context::tests::rust_child::child_7_fp_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_5_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_9_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_8_args ... ok
[INFO] [stdout] test context::tests::c_child::test_child_6_args ... ok
[INFO] [stdout] test instance::termination_details_any_typing ... ok
[INFO] [stdout] test module::sparse_page_data::tests::instantiate_valid_sparse_data ... ok
[INFO] [stdout] test module::sparse_page_data::tests::valid_sparse_page_data ... ok
[INFO] [stdout] test region::mmap::tests2::test_aligned_mem ... ok
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lucet-runtime-internals
[INFO] [stdout] test result: ok. 66 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.64s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/hostcall_macros.rs - lucet_hostcalls (line 11) ... ignored
[INFO] [stdout] test src/context/mod.rs - context::Context::init (line 314) - compile ... ok
[INFO] [stdout] test src/context/mod.rs - context::Context::init (line 291) - compile ... ok
[INFO] [stdout] test src/instance.rs - instance::Instance::run (line 432) - compile ... ok
[INFO] [stdout] test src/context/mod.rs - context::Context::swap (line 544) - compile ... ok
[INFO] [stdout] test src/vmctx.rs - vmctx::Vmctx::get_func_from_idx (line 288) - compile ... ok
[INFO] [stdout] test src/context/mod.rs - context::Context::set (line 608) - compile ... ok
[INFO] [stdout] test src/context/mod.rs - context::Context::swap (line 523) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.32s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8746c554aeaffdda639ca5d6b1c3508b4a1f64bfa96fc3a7a8e09140256d4055", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8746c554aeaffdda639ca5d6b1c3508b4a1f64bfa96fc3a7a8e09140256d4055", kill_on_drop: false }`
[INFO] [stdout] 8746c554aeaffdda639ca5d6b1c3508b4a1f64bfa96fc3a7a8e09140256d4055
