[INFO] cloning repository https://github.com/LoganBarnett/runner [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LoganBarnett/runner" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLoganBarnett%2Frunner", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLoganBarnett%2Frunner'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d0051d0181c828879db56f06d1ee97c4c6e9128a [INFO] checking LoganBarnett/runner against try#ddfd70ee3c3748e597b32f416b0d15a4f6e37685 for pr-87050 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLoganBarnett%2Frunner" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/LoganBarnett/runner on toolchain ddfd70ee3c3748e597b32f416b0d15a4f6e37685 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/LoganBarnett/runner [INFO] finished tweaking git repo https://github.com/LoganBarnett/runner [INFO] tweaked toml for git repo https://github.com/LoganBarnett/runner written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/LoganBarnett/runner already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tuikit v0.4.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1c6e9d769039691818f41645ee45e13e0c287c6d09607ba22254a63f4b78eadf [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "1c6e9d769039691818f41645ee45e13e0c287c6d09607ba22254a63f4b78eadf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1c6e9d769039691818f41645ee45e13e0c287c6d09607ba22254a63f4b78eadf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c6e9d769039691818f41645ee45e13e0c287c6d09607ba22254a63f4b78eadf", kill_on_drop: false }` [INFO] [stdout] 1c6e9d769039691818f41645ee45e13e0c287c6d09607ba22254a63f4b78eadf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6ea23965488a033ad34af834d636f8cbc1574bb432b093ae535e6b6a9bc2708f [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "6ea23965488a033ad34af834d636f8cbc1574bb432b093ae535e6b6a9bc2708f", kill_on_drop: false }` [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Checking dirs-sys v0.3.5 [INFO] [stderr] Checking log v0.4.14 [INFO] [stderr] Checking dirs v2.0.2 [INFO] [stderr] Checking term v0.6.1 [INFO] [stderr] Checking tuikit v0.4.5 [INFO] [stderr] Checking runner v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | / term.print( [INFO] [stdout] 53 | | total, [INFO] [stdout] 54 | | 0, [INFO] [stdout] 55 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 58 | | ).as_str(), [INFO] [stdout] 59 | | ) [INFO] [stdout] | |_____________________^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result` [INFO] [stdout] help: try using a variant of the expected enum [INFO] [stdout] | [INFO] [stdout] 52 | Ok(term.print( [INFO] [stdout] 53 | total, [INFO] [stdout] 54 | 0, [INFO] [stdout] 55 | format!( [INFO] [stdout] 56 | "Press RET or C-j to run the highlighted appliction {}", [INFO] [stdout] 57 | cursor, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | / term.print( [INFO] [stdout] 53 | | total, [INFO] [stdout] 54 | | 0, [INFO] [stdout] 55 | | format!( [INFO] [stdout] ... | [INFO] [stdout] 58 | | ).as_str(), [INFO] [stdout] 59 | | ) [INFO] [stdout] | |_____________________^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result` [INFO] [stdout] help: try using a variant of the expected enum [INFO] [stdout] | [INFO] [stdout] 52 | Ok(term.print( [INFO] [stdout] 53 | total, [INFO] [stdout] 54 | 0, [INFO] [stdout] 55 | format!( [INFO] [stdout] 56 | "Press RET or C-j to run the highlighted appliction {}", [INFO] [stdout] 57 | cursor, [INFO] [stdout] ... [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:63:33 [INFO] [stdout] | [INFO] [stdout] 43 | ) -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<_, AppError>` because of return type [INFO] [stdout] ... [INFO] [stdout] 63 | }).and_then(|_| term.set_cursor(0, 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | help: try using a variant of the expected enum: `Ok(term.set_cursor(0, 0))` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<(), TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:63:33 [INFO] [stdout] | [INFO] [stdout] 43 | ) -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<_, AppError>` because of return type [INFO] [stdout] ... [INFO] [stdout] 63 | }).and_then(|_| term.set_cursor(0, 0)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | help: try using a variant of the expected enum: `Ok(term.set_cursor(0, 0))` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<(), TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 43 | ) -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<_, AppError>` because of return type [INFO] [stdout] ... [INFO] [stdout] 64 | .and_then(|_| term.present()) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | help: try using a variant of the expected enum: `Ok(term.present())` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<(), TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0631]: type mismatch in function arguments [INFO] [stdout] --> src/main.rs:65:26 [INFO] [stdout] | [INFO] [stdout] 17 | TerminalPrintError(tuikit::error::TuikitError), [INFO] [stdout] | ---------------------------------------------- found signature of `fn(TuikitError) -> _` [INFO] [stdout] ... [INFO] [stdout] 65 | .map_err(AppError::TerminalPrintError) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected signature of `fn(AppError) -> _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 43 | ) -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<_, AppError>` because of return type [INFO] [stdout] ... [INFO] [stdout] 64 | .and_then(|_| term.present()) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | help: try using a variant of the expected enum: `Ok(term.present())` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<(), TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0631]: type mismatch in function arguments [INFO] [stdout] --> src/main.rs:65:26 [INFO] [stdout] | [INFO] [stdout] 17 | TerminalPrintError(tuikit::error::TuikitError), [INFO] [stdout] | ---------------------------------------------- found signature of `fn(TuikitError) -> _` [INFO] [stdout] ... [INFO] [stdout] 65 | .map_err(AppError::TerminalPrintError) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected signature of `fn(AppError) -> _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 83 | ) -> Result { [INFO] [stdout] | ----------------------- expected `Result` because of return type [INFO] [stdout] ... [INFO] [stdout] 90 | r [INFO] [stdout] | ^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<_, TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TuikitError` [INFO] [stdout] --> src/main.rs:108:51 [INFO] [stdout] | [INFO] [stdout] 108 | .map_err(AppError::TerminalPrintError)?; [INFO] [stdout] | ^ the trait `From` is not implemented for `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] = note: required because of the requirements on the impl of `FromResidual>` for `Result<_, TuikitError>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TuikitError` [INFO] [stdout] --> src/main.rs:114:67 [INFO] [stdout] | [INFO] [stdout] 114 | match input_poll(&term, cursor, line.clone(), &ev)? { [INFO] [stdout] | ^ the trait `From` is not implemented for `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] = note: required because of the requirements on the impl of `FromResidual>` for `Result<_, TuikitError>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Err` found for enum `InputEvent` in the current scope [INFO] [stdout] --> src/main.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | InputEvent::Err(e) => Ok(Loop::Err(e)), [INFO] [stdout] | ^^^ variant or associated item not found in `InputEvent` [INFO] [stdout] | [INFO] [stdout] ::: src/input.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum InputEvent { [INFO] [stdout] | ------------------- variant or associated item `Err` not found here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 83 | ) -> Result { [INFO] [stdout] | ----------------------- expected `Result` because of return type [INFO] [stdout] ... [INFO] [stdout] 90 | r [INFO] [stdout] | ^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<_, TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TuikitError` [INFO] [stdout] --> src/main.rs:108:51 [INFO] [stdout] | [INFO] [stdout] 108 | .map_err(AppError::TerminalPrintError)?; [INFO] [stdout] | ^ the trait `From` is not implemented for `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] = note: required because of the requirements on the impl of `FromResidual>` for `Result<_, TuikitError>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TuikitError` [INFO] [stdout] --> src/main.rs:114:67 [INFO] [stdout] | [INFO] [stdout] 114 | match input_poll(&term, cursor, line.clone(), &ev)? { [INFO] [stdout] | ^ the trait `From` is not implemented for `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] = help: the following implementations were found: [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] > [INFO] [stdout] = note: required because of the requirements on the impl of `FromResidual>` for `Result<_, TuikitError>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no variant or associated item named `Err` found for enum `InputEvent` in the current scope [INFO] [stdout] --> src/main.rs:115:33 [INFO] [stdout] | [INFO] [stdout] 115 | InputEvent::Err(e) => Ok(Loop::Err(e)), [INFO] [stdout] | ^^^ variant or associated item not found in `InputEvent` [INFO] [stdout] | [INFO] [stdout] ::: src/input.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum InputEvent { [INFO] [stdout] | ------------------- variant or associated item `Err` not found here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:138:51 [INFO] [stdout] | [INFO] [stdout] 138 | Loop::Err(e) => break Err(e), [INFO] [stdout] | ^ expected enum `TuikitError`, found enum `AppError` [INFO] [stdout] | [INFO] [stdout] note: return type inferred to be `TuikitError` here [INFO] [stdout] --> src/main.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / term [INFO] [stdout] 107 | | .present() [INFO] [stdout] 108 | | .map_err(AppError::TerminalPrintError)?; [INFO] [stdout] | |___________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:138:51 [INFO] [stdout] | [INFO] [stdout] 138 | Loop::Err(e) => break Err(e), [INFO] [stdout] | ^ expected enum `TuikitError`, found enum `AppError` [INFO] [stdout] | [INFO] [stdout] note: return type inferred to be `TuikitError` here [INFO] [stdout] --> src/main.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / term [INFO] [stdout] 107 | | .present() [INFO] [stdout] 108 | | .map_err(AppError::TerminalPrintError)?; [INFO] [stdout] | |___________________________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 103 | fn main() -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<(), AppError>` because of return type [INFO] [stdout] 104 | / Term::with_height(TermHeight::Percent(30)) [INFO] [stdout] 105 | | .and_then(|term: Term<()>| { [INFO] [stdout] 106 | | term [INFO] [stdout] 107 | | .present() [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [INFO] [stdout] 146 | | }) [INFO] [stdout] | |______^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<_, TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599, E0631. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 103 | fn main() -> Result<(), AppError> { [INFO] [stdout] | -------------------- expected `Result<(), AppError>` because of return type [INFO] [stdout] 104 | / Term::with_height(TermHeight::Percent(30)) [INFO] [stdout] 105 | | .and_then(|term: Term<()>| { [INFO] [stdout] 106 | | term [INFO] [stdout] 107 | | .present() [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [INFO] [stdout] 146 | | }) [INFO] [stdout] | |______^ expected enum `AppError`, found enum `TuikitError` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result<_, AppError>` [INFO] [stdout] found enum `Result<_, TuikitError>` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `runner` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 10 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599, E0631. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "6ea23965488a033ad34af834d636f8cbc1574bb432b093ae535e6b6a9bc2708f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ea23965488a033ad34af834d636f8cbc1574bb432b093ae535e6b6a9bc2708f", kill_on_drop: false }` [INFO] [stdout] 6ea23965488a033ad34af834d636f8cbc1574bb432b093ae535e6b6a9bc2708f