[INFO] cloning repository https://github.com/kirinokirino/audio-experiments
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kirinokirino/audio-experiments" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Faudio-experiments", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Faudio-experiments'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] df63f9d30850d10f4eff085212d5432d76084303
[INFO] testing kirinokirino/audio-experiments against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkirinokirino%2Faudio-experiments" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kirinokirino/audio-experiments
[INFO] finished tweaking git repo https://github.com/kirinokirino/audio-experiments
[INFO] tweaked toml for git repo https://github.com/kirinokirino/audio-experiments written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kirinokirino/audio-experiments on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kirinokirino/audio-experiments 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cc82ac34bef59f89f65652ae2fc5b1b269afe6da0f6348445d3838bd0b2f6486
[INFO] running `Command { std: "docker" "start" "-a" "cc82ac34bef59f89f65652ae2fc5b1b269afe6da0f6348445d3838bd0b2f6486", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cc82ac34bef59f89f65652ae2fc5b1b269afe6da0f6348445d3838bd0b2f6486", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc82ac34bef59f89f65652ae2fc5b1b269afe6da0f6348445d3838bd0b2f6486", kill_on_drop: false }`
[INFO] [stdout] cc82ac34bef59f89f65652ae2fc5b1b269afe6da0f6348445d3838bd0b2f6486
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6df8516cc288544a17af590dd943a64984d668574563a4fdca7c8630680be3ff
[INFO] running `Command { std: "docker" "start" "-a" "6df8516cc288544a17af590dd943a64984d668574563a4fdca7c8630680be3ff", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling glam v0.30.3
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling tinyaudio v1.1.0
[INFO] [stderr]    Compiling audio v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/sources/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         todo!();
[INFO] [stdout]    |         ------- any code following this expression is unreachable
[INFO] [stdout] 42 |         Self {}
[INFO] [stdout]    |         ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency`
[INFO] [stdout]   --> src/sources/mod.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(frequency: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rest` is never read
[INFO] [stdout]  --> src/mess/melody.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct NoteDuration {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     rest: f32,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoteDuration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl NoteDuration {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 12 |     fn new(duration: f64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `duration` and `tuning_offset` are never read
[INFO] [stdout]   --> src/mess/melody.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Note {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     duration: NoteDuration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     tuning_offset: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Note` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Note {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 49 |     fn new(name: PitchClass, octave: i8) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/dissection/engine.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<SoundEngine> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<'_, SoundEngine> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1019:17
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<T, P> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<'_, T, P> {
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1033:22
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<T, P> {
[INFO] [stdout]      |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<'_, T, P> {
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1056:21
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<T, P> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1070:26
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<T, P> {
[INFO] [stdout]      |                          ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1109:31
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<T, P> {
[INFO] [stdout]      |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<'_, T, P> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t2`
[INFO] [stdout]    --> src/main.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let t2 = ((i as f32 + 10.0) / (sample_rate as f32 * 0.25)).sin() + 1.0;
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_t2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mess_test` is never used
[INFO] [stdout]   --> src/main.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn mess_test() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sound_engine_test` is never used
[INFO] [stdout]   --> src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn sound_engine_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.86s
[INFO] running `Command { std: "docker" "inspect" "6df8516cc288544a17af590dd943a64984d668574563a4fdca7c8630680be3ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6df8516cc288544a17af590dd943a64984d668574563a4fdca7c8630680be3ff", kill_on_drop: false }`
[INFO] [stdout] 6df8516cc288544a17af590dd943a64984d668574563a4fdca7c8630680be3ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6760653178f9296866eae1fd1af97ece77aeed43c99895712ab50f9212eaec4d
[INFO] running `Command { std: "docker" "start" "-a" "6760653178f9296866eae1fd1af97ece77aeed43c99895712ab50f9212eaec4d", kill_on_drop: false }`
[INFO] [stderr]    Compiling audio v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/sources/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         todo!();
[INFO] [stdout]    |         ------- any code following this expression is unreachable
[INFO] [stdout] 42 |         Self {}
[INFO] [stdout]    |         ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency`
[INFO] [stdout]   --> src/sources/mod.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(frequency: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rest` is never read
[INFO] [stdout]  --> src/mess/melody.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct NoteDuration {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     rest: f32,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoteDuration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl NoteDuration {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 12 |     fn new(duration: f64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `duration` and `tuning_offset` are never read
[INFO] [stdout]   --> src/mess/melody.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Note {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     duration: NoteDuration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     tuning_offset: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Note` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Note {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 49 |     fn new(name: PitchClass, octave: i8) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/dissection/engine.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<SoundEngine> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<'_, SoundEngine> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1019:17
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<T, P> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<'_, T, P> {
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1033:22
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<T, P> {
[INFO] [stdout]      |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<'_, T, P> {
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1056:21
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<T, P> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1070:26
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<T, P> {
[INFO] [stdout]      |                          ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1109:31
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<T, P> {
[INFO] [stdout]      |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<'_, T, P> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t2`
[INFO] [stdout]    --> src/main.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let t2 = ((i as f32 + 10.0) / (sample_rate as f32 * 0.25)).sin() + 1.0;
[INFO] [stdout]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_t2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mess_test` is never used
[INFO] [stdout]   --> src/main.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn mess_test() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sound_engine_test` is never used
[INFO] [stdout]   --> src/main.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn sound_engine_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/sources/mod.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         todo!();
[INFO] [stdout]    |         ------- any code following this expression is unreachable
[INFO] [stdout] 42 |         Self {}
[INFO] [stdout]    |         ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency`
[INFO] [stdout]   --> src/sources/mod.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(frequency: f32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rest` is never read
[INFO] [stdout]  --> src/mess/melody.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct NoteDuration {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     rest: f32,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NoteDuration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl NoteDuration {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 12 |     fn new(duration: f64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `duration` and `tuning_offset` are never read
[INFO] [stdout]   --> src/mess/melody.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Note {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 42 |     duration: NoteDuration,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     tuning_offset: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Note` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mess/melody.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Note {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 49 |     fn new(name: PitchClass, octave: i8) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/dissection/engine.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<SoundEngine> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn lock(&self) -> MutexGuard<'_, SoundEngine> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1019:17
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<T, P> {
[INFO] [stdout]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1019 |     pub fn iter(&self) -> PoolIterator<'_, T, P> {
[INFO] [stdout]      |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1033:22
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<T, P> {
[INFO] [stdout]      |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<'_, T, P> {
[INFO] [stdout]      |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1056:21
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<T, P> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1070:26
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<T, P> {
[INFO] [stdout]      |                          ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<'_, T, P> {
[INFO] [stdout]      |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1109:31
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<T, P> {
[INFO] [stdout]      |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<'_, T, P> {
[INFO] [stdout]      |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.60s
[INFO] running `Command { std: "docker" "inspect" "6760653178f9296866eae1fd1af97ece77aeed43c99895712ab50f9212eaec4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6760653178f9296866eae1fd1af97ece77aeed43c99895712ab50f9212eaec4d", kill_on_drop: false }`
[INFO] [stdout] 6760653178f9296866eae1fd1af97ece77aeed43c99895712ab50f9212eaec4d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a6b403a901b2ad779a1b2648d53db9cbd0b8b367eb28d6a3c60f51d7c773e8ff
[INFO] running `Command { std: "docker" "start" "-a" "a6b403a901b2ad779a1b2648d53db9cbd0b8b367eb28d6a3c60f51d7c773e8ff", kill_on_drop: false }`
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/sources/mod.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |         todo!();
[INFO] [stderr]    |         ------- any code following this expression is unreachable
[INFO] [stderr] 42 |         Self {}
[INFO] [stderr]    |         ^^^^^^^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frequency`
[INFO] [stderr]   --> src/sources/mod.rs:40:16
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub fn new(frequency: f32) -> Self {
[INFO] [stderr]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `rest` is never read
[INFO] [stderr]  --> src/mess/melody.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct NoteDuration {
[INFO] [stderr]   |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 7 |     rest: f32,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `NoteDuration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/mess/melody.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl NoteDuration {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 12 |     fn new(duration: f64) -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `duration` and `tuning_offset` are never read
[INFO] [stderr]   --> src/mess/melody.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct Note {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 42 |     duration: NoteDuration,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 43 |     tuning_offset: f32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Note` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/mess/melody.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | impl Note {
[INFO] [stderr]    | --------- associated function in this implementation
[INFO] [stderr] 49 |     fn new(name: PitchClass, octave: i8) -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/dissection/engine.rs:42:17
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn lock(&self) -> MutexGuard<SoundEngine> {
[INFO] [stderr]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn lock(&self) -> MutexGuard<'_, SoundEngine> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/dissection/pool/mod.rs:1019:17
[INFO] [stderr]      |
[INFO] [stderr] 1019 |     pub fn iter(&self) -> PoolIterator<T, P> {
[INFO] [stderr]      |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1019 |     pub fn iter(&self) -> PoolIterator<'_, T, P> {
[INFO] [stderr]      |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/dissection/pool/mod.rs:1033:22
[INFO] [stderr]      |
[INFO] [stderr] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<T, P> {
[INFO] [stderr]      |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                      |
[INFO] [stderr]      |                      the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1033 |     pub fn pair_iter(&self) -> PoolPairIterator<'_, T, P> {
[INFO] [stderr]      |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/dissection/pool/mod.rs:1056:21
[INFO] [stderr]      |
[INFO] [stderr] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<T, P> {
[INFO] [stderr]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                     |
[INFO] [stderr]      |                     the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1056 |     pub fn iter_mut(&mut self) -> PoolIteratorMut<'_, T, P> {
[INFO] [stderr]      |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/dissection/pool/mod.rs:1070:26
[INFO] [stderr]      |
[INFO] [stderr] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<T, P> {
[INFO] [stderr]      |                          ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                          |
[INFO] [stderr]      |                          the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1070 |     pub fn pair_iter_mut(&mut self) -> PoolPairIteratorMut<'_, T, P> {
[INFO] [stderr]      |                                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]     --> src/dissection/pool/mod.rs:1109:31
[INFO] [stderr]      |
[INFO] [stderr] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<T, P> {
[INFO] [stderr]      |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]      |                               |
[INFO] [stderr]      |                               the lifetime is elided here
[INFO] [stderr]      |
[INFO] [stderr]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]      |
[INFO] [stderr] 1109 |     pub fn begin_multi_borrow(&mut self) -> MultiBorrowContext<'_, T, P> {
[INFO] [stderr]      |                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: `audio` (lib) generated 12 warnings (run `cargo fix --lib -p audio` to apply 7 suggestions)
[INFO] [stderr] warning: `audio` (lib test) generated 12 warnings (12 duplicates)
[INFO] [stderr] warning: unused variable: `t2`
[INFO] [stderr]    --> src/main.rs:143:17
[INFO] [stderr]     |
[INFO] [stderr] 143 |             let t2 = ((i as f32 + 10.0) / (sample_rate as f32 * 0.25)).sin() + 1.0;
[INFO] [stderr]     |                 ^^ help: if this is intentional, prefix it with an underscore: `_t2`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `mess_test` is never used
[INFO] [stderr]   --> src/main.rs:35:4
[INFO] [stderr]    |
[INFO] [stderr] 35 | fn mess_test() {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `sound_engine_test` is never used
[INFO] [stderr]   --> src/main.rs:72:4
[INFO] [stderr]    |
[INFO] [stderr] 72 | fn sound_engine_test() {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `audio` (bin "audio" test) generated 3 warnings (run `cargo fix --bin "audio" -p audio --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/audio-72e99a8a75dbfd82)
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test dissection::bus::test::test_multi_bus_data_flow ... ok
[INFO] [stdout] test dissection::pool::handle::test::default_for_handle ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_generation ... ok
[INFO] [stdout] test dissection::pool::handle::test::default_for_erased_handle ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_from_handle ... ok
[INFO] [stdout] test dissection::bus::test::test_primary_bus_data_flow ... ok
[INFO] [stdout] test dissection::bus::test::test_multi_bus_data_flow_with_effects ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_is_none ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_is_some ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_index ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_new ... ok
[INFO] [stdout] test dissection::pool::handle::test::erased_handle_none ... ok
[INFO] [stdout] test dissection::pool::handle::test::handle_getters ... ok
[INFO] [stdout] test dissection::pool::handle::test::handle_transmute ... ok
[INFO] [stdout] test dissection::pool::handle::test::test_atomic_handle ... ok
[INFO] [stdout] test dissection::pool::handle::test::handle_from_erased_handle ... ok
[INFO] [stdout] test dissection::pool::handle::test::test_debug_for_handle ... ok
[INFO] [stdout] test dissection::pool::handle::test::test_handle_u128_encode_decode ... ok
[INFO] [stdout] test dissection::pool::test::default_for_pool ... ok
[INFO] [stdout] test dissection::pool::test::index_mut_for_pool ... ok
[INFO] [stdout] test dissection::pool::multiborrow::test::test_multi_borrow_context ... ok
[INFO] [stdout] test dissection::pool::test::pool_at ... ok
[INFO] [stdout] test dissection::pool::test::pool_borrow_four_mut ... ok
[INFO] [stdout] test dissection::pool::test::handle_of ... ok
[INFO] [stdout] test dissection::pool::test::pool_at_mut ... ok
[INFO] [stdout] test dissection::pool::test::pool_get_capacity ... ok
[INFO] [stdout] test dissection::pool::test::pool_borrow_three_mut ... ok
[INFO] [stdout] test dissection::pool::test::pool_handle_from_index ... ok
[INFO] [stdout] test dissection::pool::test::pool_put_back ... ok
[INFO] [stdout] test dissection::pool::test::pool_forget_ticket ... ok
[INFO] [stdout] test dissection::pool::test::pool_sanity_tests ... ok
[INFO] [stdout] test dissection::pool::test::pool_replace ... ok
[INFO] [stdout] test dissection::pool::test::pool_test_spawn_at ... ok
[INFO] [stdout] test dissection::pool::test::index_for_pool ... ok
[INFO] [stdout] test dissection::pool::test::pool_clear ... ok
[INFO] [stdout] test dissection::pool::test::pool_iterator_mut_test ... ok
[INFO] [stdout] test dissection::pool::test::pool_pair_iter_mut ... ok
[INFO] [stdout] test dissection::pool::test::pool_pair_iter ... ok
[INFO] [stdout] test dissection::pool::test::pool_borrow_two_mut ... ok
[INFO] [stdout] test dissection::pool::test::pool_try_borrow_dependant_mut ... ok
[INFO] [stdout] test dissection::pool::test::pool_test_try_free ... ok
[INFO] [stdout] test dissection::pool::test::pool_total_count ... ok
[INFO] [stdout] test dissection::pool::test::test_atomic_handle ... ok
[INFO] [stdout] test dissection::pool::test::pool_try_borrow ... ok
[INFO] [stdout] test dissection::pool::test::test_generate_free_handles ... ok
[INFO] [stdout] test dissection::pool::test::pool_with_capacity ... ok
[INFO] [stdout] test dissection::pool::test::test_spawn_consistent_with_generate_free_handles ... ok
[INFO] [stdout] test dissection::pool::test::pool_alive_count ... ok
[INFO] [stdout] test dissection::pool::test::pool_try_take_reserve ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/audio-62d50910cd38efed)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests audio
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_four_mut (line 670) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::alive_count (line 926) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_three_mut (line 629) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter_mut (line 1045) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_two_mut (line 599) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_mut (line 527) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::is_valid_handle (line 989) ... FAILED
[INFO] [stdout] test src/dissection/bus.rs - dissection::bus::AudioBusGraph (line 264) ... FAILED
[INFO] [stdout] test src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter (line 1008) ... FAILED
[INFO] [stdout] test src/dissection/bus.rs - dissection::bus::AudioBusGraph::add_bus (line 306) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_four_mut (line 670) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:671:5
[INFO] [stdout]     |
[INFO] [stdout] 671 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::alive_count (line 926) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:927:5
[INFO] [stdout]     |
[INFO] [stdout] 927 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_three_mut (line 629) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:630:5
[INFO] [stdout]     |
[INFO] [stdout] 630 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter_mut (line 1045) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1046:5
[INFO] [stdout]      |
[INFO] [stdout] 1046 | use fyrox_core::pool::Pool;
[INFO] [stdout]      |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]      |
[INFO] [stdout]      = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_two_mut (line 599) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:600:5
[INFO] [stdout]     |
[INFO] [stdout] 600 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_mut (line 527) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:528:5
[INFO] [stdout]     |
[INFO] [stdout] 528 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::is_valid_handle (line 989) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]    --> src/dissection/pool/mod.rs:990:5
[INFO] [stdout]     |
[INFO] [stdout] 990 | use fyrox_core::pool::Pool;
[INFO] [stdout]     |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/bus.rs - dissection::bus::AudioBusGraph (line 264) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_sound` in this scope
[INFO] [stdout]    --> src/dissection/bus.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 | use fyrox_sound::bus::AudioBus;
[INFO] [stdout]     |     ^^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_sound`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_sound`, use `cargo add fyrox_sound` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_sound` in this scope
[INFO] [stdout]    --> src/dissection/bus.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 267 | use fyrox_sound::context::SoundContext;
[INFO] [stdout]     |     ^^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_sound`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_sound`, use `cargo add fyrox_sound` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_sound` in this scope
[INFO] [stdout]    --> src/dissection/bus.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | use fyrox_sound::source::SoundSourceBuilder;
[INFO] [stdout]     |     ^^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_sound`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_sound`, use `cargo add fyrox_sound` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter (line 1008) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_core` in this scope
[INFO] [stdout]     --> src/dissection/pool/mod.rs:1009:5
[INFO] [stdout]      |
[INFO] [stdout] 1009 | use fyrox_core::pool::Pool;
[INFO] [stdout]      |     ^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_core`
[INFO] [stdout]      |
[INFO] [stdout]      = help: if you wanted to use a crate named `fyrox_core`, use `cargo add fyrox_core` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/dissection/bus.rs - dissection::bus::AudioBusGraph::add_bus (line 306) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `fyrox_sound` in this scope
[INFO] [stdout]    --> src/dissection/bus.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 | use fyrox_sound::bus::{AudioBus, AudioBusGraph};
[INFO] [stdout]     |     ^^^^^^^^^^^ use of unresolved module or unlinked crate `fyrox_sound`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `fyrox_sound`, use `cargo add fyrox_sound` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/dissection/bus.rs - dissection::bus::AudioBusGraph (line 264)
[INFO] [stdout]     src/dissection/bus.rs - dissection::bus::AudioBusGraph::add_bus (line 306)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::alive_count (line 926)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_four_mut (line 670)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_mut (line 527)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_three_mut (line 629)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::borrow_two_mut (line 599)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::is_valid_handle (line 989)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter (line 1008)
[INFO] [stdout]     src/dissection/pool/mod.rs - dissection::pool::Pool<T,P>::iter_mut (line 1045)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 10 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "a6b403a901b2ad779a1b2648d53db9cbd0b8b367eb28d6a3c60f51d7c773e8ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6b403a901b2ad779a1b2648d53db9cbd0b8b367eb28d6a3c60f51d7c773e8ff", kill_on_drop: false }`
[INFO] [stdout] a6b403a901b2ad779a1b2648d53db9cbd0b8b367eb28d6a3c60f51d7c773e8ff
