[INFO] fetching crate refuse 0.0.6...
[INFO] testing refuse-0.0.6 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate refuse 0.0.6 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate refuse 0.0.6
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate refuse 0.0.6
[INFO] tweaked toml for crates.io crate refuse 0.0.6 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate refuse 0.0.6 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate refuse 0.0.6 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f
[INFO] running `Command { std: "docker" "start" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling interpolator v0.5.0
[INFO] [stderr]    Compiling collection_literals v1.0.1
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling intentional v0.1.1
[INFO] [stderr]    Compiling kempt v0.2.4
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling proc-macro-utils v0.8.0
[INFO] [stderr]    Compiling syn v2.0.74
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling manyhow-macros v0.10.4
[INFO] [stderr]    Compiling manyhow-macros v0.11.3
[INFO] [stderr]    Compiling nanorand v0.7.0
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling flume v0.11.0
[INFO] [stderr]    Compiling manyhow v0.10.4
[INFO] [stderr]    Compiling manyhow v0.11.3
[INFO] [stderr]    Compiling derive-where v1.2.7
[INFO] [stderr]    Compiling quote-use-macros v0.8.3
[INFO] [stderr]    Compiling quote-use v0.8.3
[INFO] [stderr]    Compiling attribute-derive-macro v0.9.2
[INFO] [stderr]    Compiling attribute-derive v0.9.2
[INFO] [stderr]    Compiling refuse-macros v0.0.6
[INFO] [stderr]    Compiling refuse v0.0.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:748:14
[INFO] [stdout]     |
[INFO] [stdout] 748 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 748 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 748 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:765:14
[INFO] [stdout]     |
[INFO] [stdout] 765 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 765 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 765 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:775:14
[INFO] [stdout]     |
[INFO] [stdout] 775 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 775 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 775 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:788:14
[INFO] [stdout]     |
[INFO] [stdout] 788 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 788 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 788 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2120:51
[INFO] [stdout]      |
[INFO] [stdout] 2120 |                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2120 -                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout] 2120 +                 let _result = slab.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2513:57
[INFO] [stdout]      |
[INFO] [stdout] 2513 |         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2513 -         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout] 2513 +         if let Ok(last_allocated) = self.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2191:30
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (*slot.value.get()).allocated.roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (&(*slot.value.get()).allocated).roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2210:17
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (*slot.value.get()).allocated.value.trace(tracer);
[INFO] [stdout]      |                 ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (&(*slot.value.get()).allocated).value.trace(tracer);
[INFO] [stdout]      |                 ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.61s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: attribute-derive-macro v0.9.2, refuse-macros v0.0.6
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling refuse v0.0.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:748:14
[INFO] [stdout]     |
[INFO] [stdout] 748 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 748 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 748 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:765:14
[INFO] [stdout]     |
[INFO] [stdout] 765 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 765 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 765 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:775:14
[INFO] [stdout]     |
[INFO] [stdout] 775 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 775 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 775 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:788:14
[INFO] [stdout]     |
[INFO] [stdout] 788 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 788 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 788 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2120:51
[INFO] [stdout]      |
[INFO] [stdout] 2120 |                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2120 -                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout] 2120 +                 let _result = slab.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2513:57
[INFO] [stdout]      |
[INFO] [stdout] 2513 |         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2513 -         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout] 2513 +         if let Ok(last_allocated) = self.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2191:30
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (*slot.value.get()).allocated.roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (&(*slot.value.get()).allocated).roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2210:17
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (*slot.value.get()).allocated.value.trace(tracer);
[INFO] [stdout]      |                 ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (&(*slot.value.get()).allocated).value.trace(tracer);
[INFO] [stdout]      |                 ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]    --> tests/multithreaded.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / use std::num::NonZeroUsize;
[INFO] [stdout]   2 | | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   3 | | use std::sync::Arc;
[INFO] [stdout]   4 | | use std::thread;
[INFO] [stdout] ...   |
[INFO] [stdout] 167 | |     items: Vec<Ref<WorkUnit>>,
[INFO] [stdout] 168 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W missing-docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]   --> tests/ref.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / use refuse::{CollectionGuard, Ref};
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | | #[test]
[INFO] [stdout]  4 | | fn lifecycle() {
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | |     assert_eq!(collected.load(&guard), None);
[INFO] [stdout] 13 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W missing-docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]   --> tests/root.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / use refuse::{CollectionGuard, Root};
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | | #[test]
[INFO] [stdout]  4 | | fn lifecycle() {
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | |     assert_eq!(reference.load(&guard), None);
[INFO] [stdout] 22 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W missing-docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for the crate
[INFO] [stdout]   --> tests/root-clone.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / use refuse::{CollectionGuard, Root};
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | | #[test]
[INFO] [stdout]  4 | | fn clone() {
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |     assert_eq!(reference.load(&guard), None);
[INFO] [stdout] 27 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W missing-docs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:748:14
[INFO] [stdout]     |
[INFO] [stdout] 748 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 748 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 748 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:765:14
[INFO] [stdout]     |
[INFO] [stdout] 765 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 765 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 765 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:775:14
[INFO] [stdout]     |
[INFO] [stdout] 775 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 775 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 775 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/lib.rs:788:14
[INFO] [stdout]     |
[INFO] [stdout] 788 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 788 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout] 788 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2120:51
[INFO] [stdout]      |
[INFO] [stdout] 2120 |                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout]      |                                                   ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2120 -                 let _result = slab.last_allocated.fetch_update(
[INFO] [stdout] 2120 +                 let _result = slab.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/lib.rs:2513:57
[INFO] [stdout]      |
[INFO] [stdout] 2513 |         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout]      |                                                         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 2513 -         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stdout] 2513 +         if let Ok(last_allocated) = self.last_allocated.try_update(
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2191:30
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (*slot.value.get()).allocated.roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2191 |                     unsafe { (&(*slot.value.get()).allocated).roots.load(Ordering::Relaxed) };
[INFO] [stdout]      |                              ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stdout]     --> src/lib.rs:2210:17
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (*slot.value.get()).allocated.value.trace(tracer);
[INFO] [stdout]      |                 ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this raw pointer has type `*mut SlotData<T>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stdout]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stdout]      |
[INFO] [stdout] 2210 |                 (&(*slot.value.get()).allocated).value.trace(tracer);
[INFO] [stdout]      |                 ++                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.15s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: attribute-derive-macro v0.9.2, refuse-macros v0.0.6
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/lib.rs:748:14
[INFO] [stderr]     |
[INFO] [stderr] 748 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 748 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr] 748 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/lib.rs:765:14
[INFO] [stderr]     |
[INFO] [stderr] 765 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 765 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr] 765 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/lib.rs:775:14
[INFO] [stderr]     |
[INFO] [stderr] 775 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 775 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr] 775 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/lib.rs:788:14
[INFO] [stderr]     |
[INFO] [stderr] 788 |             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 788 -             .fetch_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr] 788 +             .try_update(Ordering::Release, Ordering::Acquire, |state| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]     --> src/lib.rs:2120:51
[INFO] [stderr]      |
[INFO] [stderr] 2120 |                 let _result = slab.last_allocated.fetch_update(
[INFO] [stderr]      |                                                   ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]      |
[INFO] [stderr] 2120 -                 let _result = slab.last_allocated.fetch_update(
[INFO] [stderr] 2120 +                 let _result = slab.last_allocated.try_update(
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]     --> src/lib.rs:2513:57
[INFO] [stderr]      |
[INFO] [stderr] 2513 |         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stderr]      |                                                         ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]      |
[INFO] [stderr] 2513 -         if let Ok(last_allocated) = self.last_allocated.fetch_update(
[INFO] [stderr] 2513 +         if let Ok(last_allocated) = self.last_allocated.try_update(
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2191:30
[INFO] [stderr]      |
[INFO] [stderr] 2191 |                     unsafe { (*slot.value.get()).allocated.roots.load(Ordering::Relaxed) };
[INFO] [stderr]      |                              ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                                |
[INFO] [stderr]      |                                this raw pointer has type `*mut SlotData<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stderr]      = note: `#[warn(dangerous_implicit_autorefs)]` on by default
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2191 |                     unsafe { (&(*slot.value.get()).allocated).roots.load(Ordering::Relaxed) };
[INFO] [stderr]      |                              ++                             +
[INFO] [stderr] 
[INFO] [stderr] warning: implicit autoref creates a reference to the dereference of a raw pointer
[INFO] [stderr]     --> src/lib.rs:2210:17
[INFO] [stderr]      |
[INFO] [stderr] 2210 |                 (*slot.value.get()).allocated.value.trace(tracer);
[INFO] [stderr]      |                 ^^----------------^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |                   |
[INFO] [stderr]      |                   this raw pointer has type `*mut SlotData<T>`
[INFO] [stderr]      |
[INFO] [stderr]      = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements
[INFO] [stderr]      = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations
[INFO] [stderr] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit
[INFO] [stderr]      |
[INFO] [stderr] 2210 |                 (&(*slot.value.get()).allocated).value.trace(tracer);
[INFO] [stderr]      |                 ++                             +
[INFO] [stderr] 
[INFO] [stderr] warning: `refuse` (lib) generated 8 warnings (run `cargo fix --lib -p refuse` to apply 6 suggestions)
[INFO] [stderr] warning: `refuse` (lib test) generated 8 warnings (8 duplicates)
[INFO] [stderr] warning: missing documentation for the crate
[INFO] [stderr]   --> tests/root-clone.rs:1:1
[INFO] [stderr]    |
[INFO] [stderr]  1 | / use refuse::{CollectionGuard, Root};
[INFO] [stderr]  2 | |
[INFO] [stderr]  3 | | #[test]
[INFO] [stderr]  4 | | fn clone() {
[INFO] [stderr] ...  |
[INFO] [stderr] 26 | |     assert_eq!(reference.load(&guard), None);
[INFO] [stderr] 27 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: requested on the command line with `-W missing-docs`
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for the crate
[INFO] [stderr]   --> tests/ref.rs:1:1
[INFO] [stderr]    |
[INFO] [stderr]  1 | / use refuse::{CollectionGuard, Ref};
[INFO] [stderr]  2 | |
[INFO] [stderr]  3 | | #[test]
[INFO] [stderr]  4 | | fn lifecycle() {
[INFO] [stderr] ...  |
[INFO] [stderr] 12 | |     assert_eq!(collected.load(&guard), None);
[INFO] [stderr] 13 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: requested on the command line with `-W missing-docs`
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for the crate
[INFO] [stderr]   --> tests/root.rs:1:1
[INFO] [stderr]    |
[INFO] [stderr]  1 | / use refuse::{CollectionGuard, Root};
[INFO] [stderr]  2 | |
[INFO] [stderr]  3 | | #[test]
[INFO] [stderr]  4 | | fn lifecycle() {
[INFO] [stderr] ...  |
[INFO] [stderr] 21 | |     assert_eq!(reference.load(&guard), None);
[INFO] [stderr] 22 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: requested on the command line with `-W missing-docs`
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for the crate
[INFO] [stderr]    --> tests/multithreaded.rs:1:1
[INFO] [stderr]     |
[INFO] [stderr]   1 | / use std::num::NonZeroUsize;
[INFO] [stderr]   2 | | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stderr]   3 | | use std::sync::Arc;
[INFO] [stderr]   4 | | use std::thread;
[INFO] [stderr] ...   |
[INFO] [stderr] 167 | |     items: Vec<Ref<WorkUnit>>,
[INFO] [stderr] 168 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: requested on the command line with `-W missing-docs`
[INFO] [stderr] 
[INFO] [stderr] warning: `refuse` (test "root-clone") generated 1 warning
[INFO] [stderr] warning: `refuse` (test "ref") generated 1 warning
[INFO] [stderr] warning: `refuse` (test "root") generated 1 warning
[INFO] [stderr] warning: `refuse` (test "multithreaded") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: attribute-derive-macro v0.9.2, refuse-macros v0.0.6
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/refuse/d48e8fcbc7dfc29a/out/refuse-d48e8fcbc7dfc29a)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test size_of_types ... ok
[INFO] [stdout] test tests::casting ... 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] [stderr]      Running tests/basic.rs (/opt/rustwide/target/debug/build/refuse/43c0d82e8aed9074/out/basic-43c0d82e8aed9074)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/multithreaded.rs (/opt/rustwide/target/debug/build/refuse/175f53f5ada66141/out/multithreaded-175f53f5ada66141)
[INFO] [stdout] test basic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test round_robin ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ref.rs (/opt/rustwide/target/debug/build/refuse/181f06fd5cf0b83b/out/ref-181f06fd5cf0b83b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test lifecycle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/root.rs (/opt/rustwide/target/debug/build/refuse/615eef036afcf0bf/out/root-615eef036afcf0bf)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test lifecycle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/root-clone.rs (/opt/rustwide/target/debug/build/refuse/c6ef134f851ba1d3/out/root_clone-c6ef134f851ba1d3)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test clone ... ok
[INFO] [stderr]    Doc-tests refuse
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/lib.rs - Ref (line 1836) - compile fail ... ok
[INFO] [stdout] test src/lib.rs - Ref (line 1848) - compile fail ... ok
[INFO] [stdout] test src/lib.rs - WouldDeadlock (line 2720) ... ok
[INFO] [stdout] test src/lib.rs - (line 5) ... ok
[INFO] [stdout] test src/lib.rs - Ref (line 1822) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f", kill_on_drop: false }`
[INFO] [stdout] f38e781b008eee9dab8a6bea607f082baaa495db3cc75ecabc482a97e2a8928f
