[INFO] cloning repository https://github.com/pvdklei/ppga
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pvdklei/ppga" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpvdklei%2Fppga", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpvdklei%2Fppga'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae7dd325c82c5f728afcb2fa767da9f7d05f83e7
[INFO] testing pvdklei/ppga against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpvdklei%2Fppga" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pvdklei/ppga
[INFO] finished tweaking git repo https://github.com/pvdklei/ppga
[INFO] tweaked toml for git repo https://github.com/pvdklei/ppga written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pvdklei/ppga on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 37 packages to latest compatible versions
[INFO] [stderr]       Adding na v0.24.0 (available: v0.32.2)
[INFO] [stderr]       Adding rand v0.8.6 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded na v0.24.0
[INFO] [stderr]   Downloaded rand_distr v0.3.0
[INFO] [stderr]   Downloaded simba v0.3.1
[INFO] [stderr]   Downloaded nalgebra v0.24.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 453bfdbc5a608e55d33bca1983566d4d2aac6d69800b65f84ddabdff03bd5448
[INFO] running `Command { std: "docker" "start" "-a" "453bfdbc5a608e55d33bca1983566d4d2aac6d69800b65f84ddabdff03bd5448", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "453bfdbc5a608e55d33bca1983566d4d2aac6d69800b65f84ddabdff03bd5448", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "453bfdbc5a608e55d33bca1983566d4d2aac6d69800b65f84ddabdff03bd5448", kill_on_drop: false }`
[INFO] [stdout] 453bfdbc5a608e55d33bca1983566d4d2aac6d69800b65f84ddabdff03bd5448
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4d59100fa7574c554bcc23d3d926cfe290494f14ae94c35210d5dd737f312211
[INFO] running `Command { std: "docker" "start" "-a" "4d59100fa7574c554bcc23d3d926cfe290494f14ae94c35210d5dd737f312211", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling matrixmultiply v0.2.4
[INFO] [stderr]    Compiling approx v0.4.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.3.1
[INFO] [stderr]    Compiling simba v0.3.1
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling rand_distr v0.3.0
[INFO] [stderr]    Compiling nalgebra v0.24.1
[INFO] [stderr]    Compiling na v0.24.0
[INFO] [stderr]    Compiling ppga v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q`
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/motor.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/motor.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/motor.rs:91:31
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<Self>> {
[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] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<'_, Self>> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.97s
[INFO] running `Command { std: "docker" "inspect" "4d59100fa7574c554bcc23d3d926cfe290494f14ae94c35210d5dd737f312211", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d59100fa7574c554bcc23d3d926cfe290494f14ae94c35210d5dd737f312211", kill_on_drop: false }`
[INFO] [stdout] 4d59100fa7574c554bcc23d3d926cfe290494f14ae94c35210d5dd737f312211
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a634460da2169390b4f9233fa9aa7092d9ddd3156af3e0714f4b603eb763d55
[INFO] running `Command { std: "docker" "start" "-a" "1a634460da2169390b4f9233fa9aa7092d9ddd3156af3e0714f4b603eb763d55", kill_on_drop: false }`
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q`
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/motor.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/motor.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/motor.rs:91:31
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<Self>> {
[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] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<'_, Self>> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ppga v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/line.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let p = Point::random();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]   --> src/motor.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut m = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q`
[INFO] [stdout]   --> src/motor.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut q = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/motor.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut p = Self::one();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/motor.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/motor.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |         for (a, b) in g.iter() {}
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/motor.rs:91:31
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<Self>> {
[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] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<'_, Self>> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.27s
[INFO] running `Command { std: "docker" "inspect" "1a634460da2169390b4f9233fa9aa7092d9ddd3156af3e0714f4b603eb763d55", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a634460da2169390b4f9233fa9aa7092d9ddd3156af3e0714f4b603eb763d55", kill_on_drop: false }`
[INFO] [stdout] 1a634460da2169390b4f9233fa9aa7092d9ddd3156af3e0714f4b603eb763d55
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cb1d6b5e37f149bf5c3e16cc88f5509ecaace01a74c5bf0fcca2aff19b93bf04
[INFO] running `Command { std: "docker" "start" "-a" "cb1d6b5e37f149bf5c3e16cc88f5509ecaace01a74c5bf0fcca2aff19b93bf04", kill_on_drop: false }`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/motor.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let mut m = Self::one();
[INFO] [stderr]    |             ----^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/motor.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let mut q = Self::one();
[INFO] [stderr]    |             ----^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/motor.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let mut p = Self::one();
[INFO] [stderr]    |             ----^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m`
[INFO] [stderr]   --> src/motor.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let mut m = Self::one();
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `q`
[INFO] [stderr]   --> src/motor.rs:29:13
[INFO] [stderr]    |
[INFO] [stderr] 29 |         let mut q = Self::one();
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/motor.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let mut p = Self::one();
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]   --> src/motor.rs:31:14
[INFO] [stderr]    |
[INFO] [stderr] 31 |         for (a, b) in g.iter() {}
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]   --> src/motor.rs:31:17
[INFO] [stderr]    |
[INFO] [stderr] 31 |         for (a, b) in g.iter() {}
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/motor.rs:91:31
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<Self>> {
[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] 91 |     pub fn into_rotor_checked(&self) -> Result<super::Rotor, error::CastError<'_, Self>> {
[INFO] [stderr]    |                                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]    --> src/line.rs:361:13
[INFO] [stderr]     |
[INFO] [stderr] 361 |         let p = Point::random();
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m`
[INFO] [stderr]   --> src/motor.rs:28:13
[INFO] [stderr]    |
[INFO] [stderr] 28 |         let mut m = Self::one();
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stderr] 
[INFO] [stderr] warning: `ppga` (lib) generated 9 warnings (run `cargo fix --lib -p ppga` to apply 9 suggestions)
[INFO] [stderr] warning: `ppga` (lib test) generated 10 warnings (8 duplicates) (run `cargo fix --lib -p ppga --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ppga-c24372882572b6d3)
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test join::tests::dual_meet_point_line ... ok
[INFO] [stdout] test join::tests::sanity2 ... ok
[INFO] [stdout] test line::tests::exp_sanity3 ... ok
[INFO] [stdout] test line::tests::exp_sanity2 ... ok
[INFO] [stdout] test join::tests::dual_meet_points ... ok
[INFO] [stdout] test join::tests::sanity1 ... ok
[INFO] [stdout] test line::tests::dual ... ok
[INFO] [stdout] test line::tests::decompose ... ok
[INFO] [stdout] test line::tests::exp_sanity1 ... ok
[INFO] [stdout] test meet::tests::sanity1 ... ok
[INFO] [stdout] test meet::tests::sanity2 ... ok
[INFO] [stdout] test line::tests::neg ... ok
[INFO] [stdout] test line::tests::new ... ok
[INFO] [stdout] test meet::tests::sanity3 ... ok
[INFO] [stdout] test motor::tests::apply_plane ... ok
[INFO] [stdout] test motor::tests::cayley ... ok
[INFO] [stdout] test motor::tests::logarithm2 ... ok
[INFO] [stdout] test motor::tests::logrithm4 ... ok
[INFO] [stdout] test motor::tests::logrithm3 ... ok
[INFO] [stdout] test motor::tests::logarithm1 ... ok
[INFO] [stdout] test motor::tests::does_same_as_neg ... ok
[INFO] [stdout] test motor::tests::point_corr ... ok
[INFO] [stdout] test motor::tests::sqrt1 ... ok
[INFO] [stdout] test motor::tests::sqrt3 ... ok
[INFO] [stdout] test plane::tests::dual ... ok
[INFO] [stdout] test motor::tests::sqrt4 ... ok
[INFO] [stdout] test motor::tests::sqrt5 ... ok
[INFO] [stdout] test plane::tests::new ... ok
[INFO] [stdout] test point::tests::dual ... ok
[INFO] [stdout] test plane::tests::move_to ... ok
[INFO] [stdout] test point::tests::move_to ... ok
[INFO] [stdout] test point::tests::new ... ok
[INFO] [stdout] test motor::tests::sqrt2 ... ok
[INFO] [stdout] test translator::tests::new ... ok
[INFO] [stdout] test motor::tests::outer_exp ... ok
[INFO] [stdout] test rotor::tests::outer_ln ... ok
[INFO] [stdout] test rotor::tests::sanity1 ... ok
[INFO] [stdout] test rotor::tests::qtangent ... ok
[INFO] [stdout] test rotor::tests::ln ... ok
[INFO] [stdout] test rotor::tests::base ... FAILED
[INFO] [stdout] test rotor::tests::for_steven ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- rotor::tests::base stdout ----
[INFO] [stdout] Rotor { scalar: NaN, e_bivector: [NaN, NaN, NaN] }
[INFO] [stdout] [-0.3364119, -0.36144882, -0.105291486]
[INFO] [stdout] 
[INFO] [stdout] thread 'rotor::tests::base' (53) panicked at src/rotor.rs:201:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: [-0.36144882, -0.3364119, -0.105291486]
[INFO] [stdout]  right: [NaN, NaN, NaN]
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58cfcc1600ea - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58cfcc1600ea - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58cfcc1600ea - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58cfcc1600ea - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58cfcc17522a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58cfcc17522a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x58cfcc1649d2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x58cfcc1649d2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x58cfcc13f0ef - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58cfcc13f0ef - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58cfcc158549 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58cfcc0bcf9c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x58cfcc0bcf9c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x58cfcc158702 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x58cfcc158702 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58cfcc13f1a8 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x58cfcc134389 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58cfcc13febd - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58cfcc17597c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58cfcc175833 - core[e929cb53b82a81ca]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x58cfcc062d8e - core[e929cb53b82a81ca]::panicking::assert_failed::<[f32; 3usize], [f32; 3usize]>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x58cfcc067418 - ppga[ced09d9bec13526e]::rotor::tests::base
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rotor.rs:201:9
[INFO] [stdout]   22:     0x58cfcc0639c7 - ppga[ced09d9bec13526e]::rotor::tests::base::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rotor.rs:193:14
[INFO] [stdout]   23:     0x58cfcc069846 - <ppga[ced09d9bec13526e]::rotor::tests::base::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x58cfcc0b027b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58cfcc0b027b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x58cfcc0bda6b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x58cfcc0b7184 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x58cfcc0b7184 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x58cfcc0c0672 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x58cfcc0c0672 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x58cfcc0c0672 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x58cfcc0c0672 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x58cfcc15f9ff - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x58cfcc15f9ff - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x736110602aa4 - <unknown>
[INFO] [stdout]   45:     0x73611068fa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rotor::tests::for_steven stdout ----
[INFO] [stdout] Motor { scalar: 0.15705796, v_bivector: [-1.228896, 0.23558694, -0.5498316], e_bivector: [0.0, 0.9875895, 0.0], pseudo: 1.4813843 }
[INFO] [stdout] Line { e_bivector: [0.0, 1.4130855, 0.0], v_bivector: [-1.7583572, 7.5041776, -0.7867227] }
[INFO] [stdout] Motor { scalar: 0.1570579, v_bivector: [-1.2288959, 11.667759, -0.5498316], e_bivector: [0.0, 0.9875894, 0.0], pseudo: 7.4110465 }
[INFO] [stdout] True Point After Motor Point { trivector: [1.0000001, -1.0535796, -2.1418085, 2.4651575] }
[INFO] [stdout] Point After Log Motor Point { trivector: [1.0, -1.0535797, -17.444979, 2.4651573] }
[INFO] [stdout] 
[INFO] [stdout] thread 'rotor::tests::for_steven' (54) panicked at src/rotor.rs:219:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Motor { scalar: 0.15705796, v_bivector: [-1.228896, 0.23558694, -0.5498316], e_bivector: [0.0, 0.9875895, 0.0], pseudo: 1.4813843 }
[INFO] [stdout]  right: Motor { scalar: 0.1570579, v_bivector: [-1.2288959, 11.667759, -0.5498316], e_bivector: [0.0, 0.9875894, 0.0], pseudo: 7.4110465 }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58cfcc1600ea - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58cfcc1600ea - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58cfcc1600ea - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58cfcc1600ea - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58cfcc17522a - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58cfcc17522a - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x58cfcc1649d2 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x58cfcc1649d2 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x58cfcc13f0ef - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58cfcc13f0ef - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58cfcc158549 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58cfcc0bcf9c - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x58cfcc0bcf9c - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x58cfcc158702 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x58cfcc158702 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58cfcc13f1a8 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x58cfcc134389 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58cfcc13febd - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58cfcc17597c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58cfcc175833 - core[e929cb53b82a81ca]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x58cfcc062e30 - core[e929cb53b82a81ca]::panicking::assert_failed::<ppga[ced09d9bec13526e]::motor::Motor, ppga[ced09d9bec13526e]::motor::Motor>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x58cfcc067133 - ppga[ced09d9bec13526e]::rotor::tests::for_steven
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rotor.rs:219:9
[INFO] [stdout]   22:     0x58cfcc063967 - ppga[ced09d9bec13526e]::rotor::tests::for_steven::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rotor.rs:205:20
[INFO] [stdout]   23:     0x58cfcc0697c6 - <ppga[ced09d9bec13526e]::rotor::tests::for_steven::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x58cfcc0b027b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58cfcc0b027b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x58cfcc0bda6b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x58cfcc0bda6b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x58cfcc0bda6b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x58cfcc0b7184 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x58cfcc0b7184 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x58cfcc0c0672 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x58cfcc0c0672 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x58cfcc0c0672 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x58cfcc0c0672 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x58cfcc0c0672 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x58cfcc15f9ff - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x58cfcc15f9ff - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x736110602aa4 - <unknown>
[INFO] [stdout]   45:     0x73611068fa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     rotor::tests::base
[INFO] [stdout]     rotor::tests::for_steven
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 39 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "cb1d6b5e37f149bf5c3e16cc88f5509ecaace01a74c5bf0fcca2aff19b93bf04", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb1d6b5e37f149bf5c3e16cc88f5509ecaace01a74c5bf0fcca2aff19b93bf04", kill_on_drop: false }`
[INFO] [stdout] cb1d6b5e37f149bf5c3e16cc88f5509ecaace01a74c5bf0fcca2aff19b93bf04
