[INFO] cloning repository https://github.com/egonzalez49/advent-2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/egonzalez49/advent-2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fegonzalez49%2Fadvent-2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fegonzalez49%2Fadvent-2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7228a94b4f6ea33b6d01dafa7370af564c80e1c0
[INFO] testing egonzalez49/advent-2023 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fegonzalez49%2Fadvent-2023" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/egonzalez49/advent-2023
[INFO] finished tweaking git repo https://github.com/egonzalez49/advent-2023
[INFO] tweaked toml for git repo https://github.com/egonzalez49/advent-2023 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/egonzalez49/advent-2023 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] crate git repo https://github.com/egonzalez49/advent-2023 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thread_local v1.1.7
[INFO] [stderr]   Downloaded quote v1.0.33
[INFO] [stderr]   Downloaded proc-macro2 v1.0.70
[INFO] [stderr]   Downloaded smallvec v1.11.2
[INFO] [stderr]   Downloaded joinery v2.1.0
[INFO] [stderr]   Downloaded indent_write v2.2.0
[INFO] [stderr]   Downloaded test-log v0.2.14
[INFO] [stderr]   Downloaded serial_test_derive v2.0.0
[INFO] [stderr]   Downloaded futures-core v0.3.29
[INFO] [stderr]   Downloaded futures-task v0.3.29
[INFO] [stderr]   Downloaded pico-args v0.5.0
[INFO] [stderr]   Downloaded test-log-macros v0.2.14
[INFO] [stderr]   Downloaded brownstone v3.0.0
[INFO] [stderr]   Downloaded serial_test v2.0.0
[INFO] [stderr]   Downloaded futures-sink v0.3.29
[INFO] [stderr]   Downloaded futures-io v0.3.29
[INFO] [stderr]   Downloaded nom_locate v4.2.0
[INFO] [stderr]   Downloaded bytecount v0.6.7
[INFO] [stderr]   Downloaded nom-supreme v0.8.0
[INFO] [stderr]   Downloaded arrayvec v0.7.4
[INFO] [stderr]   Downloaded futures-executor v0.3.29
[INFO] [stderr]   Downloaded dashmap v5.5.3
[INFO] [stderr]   Downloaded either v1.9.0
[INFO] [stderr]   Downloaded futures-channel v0.3.29
[INFO] [stderr]   Downloaded futures v0.3.29
[INFO] [stderr]   Downloaded memchr v2.6.4
[INFO] [stderr]   Downloaded itertools v0.12.0
[INFO] [stderr]   Downloaded futures-util v0.3.29
[INFO] [stderr]   Downloaded syn v2.0.39
[INFO] [stderr]   Downloaded regex v1.10.2
[INFO] [stderr]   Downloaded glam v0.24.2
[INFO] [stderr]   Downloaded regex-automata v0.4.3
[INFO] [stderr]   Downloaded libc v0.2.151
[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] 3a3937d418443d79e1c26d666ef40b807bd179b0d050b47ec18f890795d3349c
[INFO] running `Command { std: "docker" "start" "-a" "3a3937d418443d79e1c26d666ef40b807bd179b0d050b47ec18f890795d3349c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3a3937d418443d79e1c26d666ef40b807bd179b0d050b47ec18f890795d3349c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a3937d418443d79e1c26d666ef40b807bd179b0d050b47ec18f890795d3349c", kill_on_drop: false }`
[INFO] [stdout] 3a3937d418443d79e1c26d666ef40b807bd179b0d050b47ec18f890795d3349c
[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] cf32e2fa5ac7325a93c323d515b872ef2f6b4fbf852a2bbd893b8a8a49eee105
[INFO] running `Command { std: "docker" "start" "-a" "cf32e2fa5ac7325a93c323d515b872ef2f6b4fbf852a2bbd893b8a8a49eee105", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.13
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling futures-core v0.3.29
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling futures-channel v0.3.29
[INFO] [stderr]    Compiling futures-task v0.3.29
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling futures-sink v0.3.29
[INFO] [stderr]    Compiling futures-util v0.3.29
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling futures-io v0.3.29
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling arrayvec v0.7.4
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling thread_local v1.1.7
[INFO] [stderr]    Compiling indent_write v2.2.0
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling bytecount v0.6.7
[INFO] [stderr]    Compiling brownstone v3.0.0
[INFO] [stderr]    Compiling joinery v2.1.0
[INFO] [stderr]    Compiling itertools v0.12.0
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling glam v0.24.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling regex-automata v0.4.3
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling regex v1.10.2
[INFO] [stderr]    Compiling futures-executor v0.3.29
[INFO] [stderr]    Compiling futures v0.3.29
[INFO] [stderr]    Compiling nom_locate v4.2.0
[INFO] [stderr]    Compiling nom-supreme v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling serial_test_derive v2.0.0
[INFO] [stderr]    Compiling test-log-macros v0.2.14
[INFO] [stderr]    Compiling serial_test v2.0.0
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling test-log v0.2.14
[INFO] [stderr]    Compiling advent_of_code v0.9.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/08.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges)> {
[INFO] [stdout]    |                ^^^^             ^^^^   ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |      |
[INFO] [stdout]    |                |                |      the same lifetime is elided here
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges<'_>)> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/08.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges>> {
[INFO] [stdout]    |                       ^^^^             ^^^^           ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |                |              |
[INFO] [stdout]    |                       |                |              the same lifetime is elided here
[INFO] [stdout]    |                       |                the same lifetime is elided here
[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] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges<'_>>> {
[INFO] [stdout]    |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/07.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn determine_hand_type(hand: &str) -> Hand {
[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] 90 | fn determine_hand_type(hand: &str) -> Hand<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/bin/07.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn parse_games(input: &str) -> Vec<Game> {
[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] 125 | fn parse_games(input: &str) -> Vec<Game<'_>> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn cube(input: &str) -> IResult<&str, Cube> {
[INFO] [stdout]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 52 | fn cube(input: &str) -> IResult<&str, Cube<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube>> {
[INFO] [stdout]    |                ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube<'_>>> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn game(input: &str) -> IResult<&str, Game> {
[INFO] [stdout]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 62 | fn game(input: &str) -> IResult<&str, Game<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game>> {
[INFO] [stdout]    |                       ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |                |
[INFO] [stdout]    |                       |                the same lifetime is elided here
[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] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game<'_>>> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.14s
[INFO] running `Command { std: "docker" "inspect" "cf32e2fa5ac7325a93c323d515b872ef2f6b4fbf852a2bbd893b8a8a49eee105", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf32e2fa5ac7325a93c323d515b872ef2f6b4fbf852a2bbd893b8a8a49eee105", kill_on_drop: false }`
[INFO] [stdout] cf32e2fa5ac7325a93c323d515b872ef2f6b4fbf852a2bbd893b8a8a49eee105
[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] 3f067ec5738537155893f1fdd06d3e0e968232cfb42f6d85eb5bb332b7a783ab
[INFO] running `Command { std: "docker" "start" "-a" "3f067ec5738537155893f1fdd06d3e0e968232cfb42f6d85eb5bb332b7a783ab", kill_on_drop: false }`
[INFO] [stderr]    Compiling advent_of_code v0.9.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn cube(input: &str) -> IResult<&str, Cube> {
[INFO] [stdout]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 52 | fn cube(input: &str) -> IResult<&str, Cube<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube>> {
[INFO] [stdout]    |                ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube<'_>>> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn game(input: &str) -> IResult<&str, Game> {
[INFO] [stdout]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 62 | fn game(input: &str) -> IResult<&str, Game<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/02.rs:68:23
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game>> {
[INFO] [stdout]    |                       ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |                |
[INFO] [stdout]    |                       |                the same lifetime is elided here
[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] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game<'_>>> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/07.rs:90:30
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn determine_hand_type(hand: &str) -> Hand {
[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] 90 | fn determine_hand_type(hand: &str) -> Hand<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/bin/07.rs:125:23
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn parse_games(input: &str) -> Vec<Game> {
[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] 125 | fn parse_games(input: &str) -> Vec<Game<'_>> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/08.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges)> {
[INFO] [stdout]    |                ^^^^             ^^^^   ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |                |      |
[INFO] [stdout]    |                |                |      the same lifetime is elided here
[INFO] [stdout]    |                |                the same lifetime is elided here
[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] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges<'_>)> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/08.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges>> {
[INFO] [stdout]    |                       ^^^^             ^^^^           ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |                |              |
[INFO] [stdout]    |                       |                |              the same lifetime is elided here
[INFO] [stdout]    |                       |                the same lifetime is elided here
[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] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges<'_>>> {
[INFO] [stdout]    |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.00s
[INFO] running `Command { std: "docker" "inspect" "3f067ec5738537155893f1fdd06d3e0e968232cfb42f6d85eb5bb332b7a783ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f067ec5738537155893f1fdd06d3e0e968232cfb42f6d85eb5bb332b7a783ab", kill_on_drop: false }`
[INFO] [stdout] 3f067ec5738537155893f1fdd06d3e0e968232cfb42f6d85eb5bb332b7a783ab
[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] fb88e487180772fb807f7def845ebe3a495161f53eac6b21de07a79dd3367942
[INFO] running `Command { std: "docker" "start" "-a" "fb88e487180772fb807f7def845ebe3a495161f53eac6b21de07a79dd3367942", kill_on_drop: false }`
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/07.rs:90:30
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn determine_hand_type(hand: &str) -> Hand {
[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] 90 | fn determine_hand_type(hand: &str) -> Hand<'_> {
[INFO] [stderr]    |                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/bin/07.rs:125:23
[INFO] [stderr]     |
[INFO] [stderr] 125 | fn parse_games(input: &str) -> Vec<Game> {
[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] 125 | fn parse_games(input: &str) -> Vec<Game<'_>> {
[INFO] [stderr]     |                                        ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/02.rs:52:16
[INFO] [stderr]    |
[INFO] [stderr] 52 | fn cube(input: &str) -> IResult<&str, Cube> {
[INFO] [stderr]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |                |
[INFO] [stderr]    |                |                the same lifetime is elided here
[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] 52 | fn cube(input: &str) -> IResult<&str, Cube<'_>> {
[INFO] [stderr]    |                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/02.rs:57:16
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube>> {
[INFO] [stderr]    |                ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |                |
[INFO] [stderr]    |                |                the same lifetime is elided here
[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] 57 | fn hand(input: &str) -> IResult<&str, Vec<Cube<'_>>> {
[INFO] [stderr]    |                                               ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/02.rs:62:16
[INFO] [stderr]    |
[INFO] [stderr] 62 | fn game(input: &str) -> IResult<&str, Game> {
[INFO] [stderr]    |                ^^^^             ^^^^  ^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |                |
[INFO] [stderr]    |                |                the same lifetime is elided here
[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] 62 | fn game(input: &str) -> IResult<&str, Game<'_>> {
[INFO] [stderr]    |                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/02.rs:68:23
[INFO] [stderr]    |
[INFO] [stderr] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game>> {
[INFO] [stderr]    |                       ^^^^             ^^^^      ^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |                |
[INFO] [stderr]    |                       |                the same lifetime is elided here
[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] 68 | fn parse_games(input: &str) -> IResult<&str, Vec<Game<'_>>> {
[INFO] [stderr]    |                                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/08.rs:23:16
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges)> {
[INFO] [stderr]    |                ^^^^             ^^^^   ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |                |      |
[INFO] [stderr]    |                |                |      the same lifetime is elided here
[INFO] [stderr]    |                |                the same lifetime is elided here
[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] 23 | fn node(input: &str) -> IResult<&str, (&str, Edges<'_>)> {
[INFO] [stderr]    |                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/bin/08.rs:35:23
[INFO] [stderr]    |
[INFO] [stderr] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges>> {
[INFO] [stderr]    |                       ^^^^             ^^^^           ^^^^  ^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |                |              |
[INFO] [stderr]    |                       |                |              the same lifetime is elided here
[INFO] [stderr]    |                       |                the same lifetime is elided here
[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] 35 | fn parse_nodes(input: &str) -> IResult<&str, BTreeMap<&str, Edges<'_>>> {
[INFO] [stderr]    |                                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `advent_of_code` (bin "07" test) generated 2 warnings (run `cargo fix --bin "07" -p advent_of_code --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `advent_of_code` (bin "02" test) generated 4 warnings (run `cargo fix --bin "02" -p advent_of_code --tests` to apply 4 suggestions)
[INFO] [stderr] warning: `advent_of_code` (bin "08" test) generated 2 warnings (run `cargo fix --bin "08" -p advent_of_code --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/advent_of_code-2699530313071cd6)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/01.rs (/opt/rustwide/target/debug/deps/01-3177fb5de7e786ed)
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/02.rs (/opt/rustwide/target/debug/deps/02-1d4b58c3aa27db7c)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stderr]      Running unittests src/bin/03.rs (/opt/rustwide/target/debug/deps/03-44e1daa2bf06bcc4)
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/04.rs (/opt/rustwide/target/debug/deps/04-5eae61168720acd4)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/05.rs (/opt/rustwide/target/debug/deps/05-e13b41d7efa87bd2)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stderr]      Running unittests src/bin/06.rs (/opt/rustwide/target/debug/deps/06-525deb6d9faaa534)
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/07.rs (/opt/rustwide/target/debug/deps/07-0893824ec35d4898)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/08.rs (/opt/rustwide/target/debug/deps/08-e703e9f28db79c7f)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/09.rs (/opt/rustwide/target/debug/deps/09-47be3069e60a8310)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/10.rs (/opt/rustwide/target/debug/deps/10-b59be7160896eaa9)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/11.rs (/opt/rustwide/target/debug/deps/11-4ab2ba97f8665434)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::test_part_one ... ok
[INFO] [stdout] test tests::test_part_two ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/advent_of_code-2c87d0ca67c99186)
[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] running `Command { std: "docker" "inspect" "fb88e487180772fb807f7def845ebe3a495161f53eac6b21de07a79dd3367942", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb88e487180772fb807f7def845ebe3a495161f53eac6b21de07a79dd3367942", kill_on_drop: false }`
[INFO] [stdout] fb88e487180772fb807f7def845ebe3a495161f53eac6b21de07a79dd3367942
