[INFO] updating cached repository https://github.com/Dooskington/SPIMQuest [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9d89b3d0d77be1c375c7c425825bed8bbcf0a506 [INFO] testing Dooskington/SPIMQuest against try#03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 for pr-74409 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDooskington%2FSPIMQuest" "/workspace/builds/worker-13/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Dooskington/SPIMQuest on toolchain 03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Dooskington/SPIMQuest [INFO] finished tweaking git repo https://github.com/Dooskington/SPIMQuest [INFO] tweaked toml for git repo https://github.com/Dooskington/SPIMQuest written to /workspace/builds/worker-13/source/Cargo.toml [INFO] crate git repo https://github.com/Dooskington/SPIMQuest already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cd40a3f437c4e01a1e27bf4ab8bd30c42aea7691c7c2d182ab1960f596ba768b [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" "cd40a3f437c4e01a1e27bf4ab8bd30c42aea7691c7c2d182ab1960f596ba768b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cd40a3f437c4e01a1e27bf4ab8bd30c42aea7691c7c2d182ab1960f596ba768b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd40a3f437c4e01a1e27bf4ab8bd30c42aea7691c7c2d182ab1960f596ba768b", kill_on_drop: false }` [INFO] [stdout] cd40a3f437c4e01a1e27bf4ab8bd30c42aea7691c7c2d182ab1960f596ba768b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 062bcf8fc83223a0151601dba0bd70675ccd65d90befb1abec606c5ff3b5933e [INFO] running `Command { std: "docker" "start" "-a" "062bcf8fc83223a0151601dba0bd70675ccd65d90befb1abec606c5ff3b5933e", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.1.40 [INFO] [stderr] Compiling libc v0.2.33 [INFO] [stderr] Compiling either v1.3.0 [INFO] [stderr] Compiling rawpointer v0.1.0 [INFO] [stderr] Compiling ndarray v0.10.12 [INFO] [stderr] Compiling bitflags v0.7.0 [INFO] [stderr] Compiling lazy_static v0.2.9 [INFO] [stderr] Compiling c_vec v1.0.12 [INFO] [stderr] Compiling matrixmultiply v0.1.14 [INFO] [stderr] Compiling itertools v0.7.2 [INFO] [stderr] Compiling sdl2-sys v0.30.0 [INFO] [stderr] Compiling rand v0.3.17 [INFO] [stderr] Compiling time v0.1.38 [INFO] [stderr] Compiling num-integer v0.1.35 [INFO] [stderr] Compiling num-complex v0.1.40 [INFO] [stderr] Compiling num-iter v0.1.34 [INFO] [stderr] Compiling num v0.1.40 [INFO] [stderr] Compiling sdl2 v0.30.0 [INFO] [stderr] Compiling pathfinding v0.1.19 [INFO] [stderr] Compiling spimquest v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/main.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use std::cell::{Ref, RefCell}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::pixels::PixelFormatEnum` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use sdl2::pixels::PixelFormatEnum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:235:16 [INFO] [stdout] | [INFO] [stdout] 235 | if (ent.texture_id == TEXTURE_MONSTER) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/main.rs:773:90 [INFO] [stdout] | [INFO] [stdout] 773 | let mut color: Color = floor_texture.get_pixel(texture_x, texture_y);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `total_time` [INFO] [stdout] --> src/main.rs:527:17 [INFO] [stdout] | [INFO] [stdout] 527 | let total_time: Duration = current_time - self.start_time; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_time` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tile` [INFO] [stdout] --> src/main.rs:719:17 [INFO] [stdout] | [INFO] [stdout] 719 | let tile = self.map.get_tile(intersection.tile_x as i32, intersection.tile_y as i32).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_tile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:209:17 [INFO] [stdout] | [INFO] [stdout] 209 | let mut result = astar(&start.clone(), |p| self.get_neighbors(p.clone()), |p| Position::distance(p, &goal), |p| *p == goal); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:210:25 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(mut value) = result { [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/main.rs:940:21 [INFO] [stdout] | [INFO] [stdout] 940 | let mut distance_x: f64 = ray_position_x - origin_x; [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/main.rs:941:21 [INFO] [stdout] | [INFO] [stdout] 941 | let mut distance_y: f64 = ray_position_y - origin_y; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:468:13 [INFO] [stdout] | [INFO] [stdout] 468 | sdl_window.set_fullscreen(FullscreenType::True); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:668:17 [INFO] [stdout] | [INFO] [stdout] 668 | self.sdl_canvas.string(10, 10, &format!("CSE 341 Difficulty: {}", self.difficulty), COLOR_WHITE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:669:17 [INFO] [stdout] | [INFO] [stdout] 669 | self.sdl_canvas.string(10, 20, &format!("MIPS Knowledge: {}", self.score), COLOR_WHITE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:895:21 [INFO] [stdout] | [INFO] [stdout] 895 | self.sdl_canvas.pixel(sprite_screen_row as i16, sprite_screen_col as i16, color); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: linking with `cc` failed: exit code: 1 [INFO] [stdout] | [INFO] [stdout] = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.10.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.11.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.12.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.13.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.14.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.15.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.spimquest.dl5un033-cgu.9.rcgu.o" "-o" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009" "/opt/rustwide/target/debug/deps/spimquest-12149c511c210009.40ug5zgd79ezyw7w.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/libpathfinding-d9338b735216ab26.rlib" "/opt/rustwide/target/debug/deps/libndarray-dfe13b98b4770bab.rlib" "/opt/rustwide/target/debug/deps/libnum_complex-af44426bd1630d66.rlib" "/opt/rustwide/target/debug/deps/libitertools-003d06586bb45692.rlib" "/opt/rustwide/target/debug/deps/libeither-0c69ad938e84327e.rlib" "/opt/rustwide/target/debug/deps/libmatrixmultiply-920020ec146f54b7.rlib" "/opt/rustwide/target/debug/deps/librawpointer-7afdcc898c14c855.rlib" "/opt/rustwide/target/debug/deps/libtime-32ad933ce1e1a495.rlib" "/opt/rustwide/target/debug/deps/libsdl2-d9e80a883cbfcd01.rlib" "/opt/rustwide/target/debug/deps/librand-d1969adab8de58b8.rlib" "/opt/rustwide/target/debug/deps/libc_vec-c1a3dd2128644df0.rlib" "/opt/rustwide/target/debug/deps/libsdl2_sys-b2904a5a9cf3fe4c.rlib" "/opt/rustwide/target/debug/deps/libbitflags-d2ad12c0bdfd14cf.rlib" "/opt/rustwide/target/debug/deps/liblazy_static-e7da7dd7cd19118c.rlib" "/opt/rustwide/target/debug/deps/liblibc-95696bfcce61be44.rlib" "/opt/rustwide/target/debug/deps/libnum-a0bb9798c608f5b6.rlib" "/opt/rustwide/target/debug/deps/libnum_iter-fa06138f597df683.rlib" "/opt/rustwide/target/debug/deps/libnum_integer-1310333546839132.rlib" "/opt/rustwide/target/debug/deps/libnum_traits-f0d166ce20dc31a1.rlib" "-Wl,--start-group" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-5989bcf78182f65e.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-4d6da34bc177af8d.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-10e0d6c948699482.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-c2318e2415657781.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-3815b93ed84badbb.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-d7999143d95238cb.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-c58298a0d40df8b8.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-b7de97e2ba6fb4e2.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-6f71c9f654d72cce.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-95ea48ddc44a311b.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-7402cd4761aebc14.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-68f423c59dc48a40.rlib" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-54580c7798bf2225.rlib" "-Wl,--end-group" "/opt/rustwide/rustup-home/toolchains/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-95a4d456339b7385.rlib" "-Wl,-Bdynamic" "-lSDL2_image" "-lSDL2_gfx" "-lSDL2" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil" [INFO] [stdout] = note: /usr/bin/ld: cannot find -lSDL2_image [INFO] [stdout] /usr/bin/ld: cannot find -lSDL2_gfx [INFO] [stdout] collect2: error: ld returned 1 exit status [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error; 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `spimquest`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `Command { std: "docker" "inspect" "062bcf8fc83223a0151601dba0bd70675ccd65d90befb1abec606c5ff3b5933e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "062bcf8fc83223a0151601dba0bd70675ccd65d90befb1abec606c5ff3b5933e", kill_on_drop: false }` [INFO] [stdout] 062bcf8fc83223a0151601dba0bd70675ccd65d90befb1abec606c5ff3b5933e