[INFO] cloning repository https://github.com/UsrBinLuna/chip_infinite [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/UsrBinLuna/chip_infinite" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUsrBinLuna%2Fchip_infinite", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUsrBinLuna%2Fchip_infinite'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 537c73c7f40877547368a38468ddff8af0869208 [INFO] checking UsrBinLuna/chip_infinite against master#8f359beca4e58bc3ae795a666301a8f47023044c for pr-121545 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUsrBinLuna%2Fchip_infinite" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/UsrBinLuna/chip_infinite on toolchain 8f359beca4e58bc3ae795a666301a8f47023044c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f359beca4e58bc3ae795a666301a8f47023044c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/UsrBinLuna/chip_infinite [INFO] finished tweaking git repo https://github.com/UsrBinLuna/chip_infinite [INFO] tweaked toml for git repo https://github.com/UsrBinLuna/chip_infinite written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/UsrBinLuna/chip_infinite 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" "+8f359beca4e58bc3ae795a666301a8f47023044c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [ERROR] this task or one of its parent failed! [ERROR] no output for 300 seconds [ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace. [INFO] checking UsrBinLuna/chip_infinite against try#7ee76453dd3eae6de6c1351f26482bed63b01beb for pr-121545 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FUsrBinLuna%2Fchip_infinite" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/UsrBinLuna/chip_infinite on toolchain 7ee76453dd3eae6de6c1351f26482bed63b01beb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7ee76453dd3eae6de6c1351f26482bed63b01beb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/UsrBinLuna/chip_infinite [INFO] finished tweaking git repo https://github.com/UsrBinLuna/chip_infinite [INFO] tweaked toml for git repo https://github.com/UsrBinLuna/chip_infinite written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/UsrBinLuna/chip_infinite 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" "+7ee76453dd3eae6de6c1351f26482bed63b01beb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded colored v2.0.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7ee76453dd3eae6de6c1351f26482bed63b01beb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ec8d4d8fff5b8935c8a03b6fa8e2b76a1e6e1da2cee7f320654b21cbb093b6a6 [INFO] running `Command { std: "docker" "start" "-a" "ec8d4d8fff5b8935c8a03b6fa8e2b76a1e6e1da2cee7f320654b21cbb093b6a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ec8d4d8fff5b8935c8a03b6fa8e2b76a1e6e1da2cee7f320654b21cbb093b6a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec8d4d8fff5b8935c8a03b6fa8e2b76a1e6e1da2cee7f320654b21cbb093b6a6", kill_on_drop: false }` [INFO] [stdout] ec8d4d8fff5b8935c8a03b6fa8e2b76a1e6e1da2cee7f320654b21cbb093b6a6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7ee76453dd3eae6de6c1351f26482bed63b01beb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fd99aa81ecc280d77733ff1c9b58ad85f7d0050515d7e1efe0fa20fb79b864a7 [INFO] running `Command { std: "docker" "start" "-a" "fd99aa81ecc280d77733ff1c9b58ad85f7d0050515d7e1efe0fa20fb79b864a7", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v0.38.8 [INFO] [stderr] Checking bitflags v2.4.0 [INFO] [stderr] Checking linux-raw-sys v0.4.5 [INFO] [stderr] Checking is-terminal v0.4.9 [INFO] [stderr] Checking colored v2.0.4 [INFO] [stderr] Checking chip_infinite v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::string` [INFO] [stdout] --> src/emu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::string; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::string` [INFO] [stdout] --> src/emu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::string; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 215 | if (self.dt > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 215 - if (self.dt > 0) { [INFO] [stdout] 215 + if self.dt > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | if (self.st > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 219 - if (self.st > 0) { [INFO] [stdout] 219 + if self.st > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:220:16 [INFO] [stdout] | [INFO] [stdout] 220 | if (self.st == 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 220 - if (self.st == 1) { [INFO] [stdout] 220 + if self.st == 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 215 | if (self.dt > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 215 - if (self.dt > 0) { [INFO] [stdout] 215 + if self.dt > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | if (self.st > 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 219 - if (self.st > 0) { [INFO] [stdout] 219 + if self.st > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emu.rs:220:16 [INFO] [stdout] | [INFO] [stdout] 220 | if (self.st == 1) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 220 - if (self.st == 1) { [INFO] [stdout] 220 + if self.st == 1 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `op` [INFO] [stdout] --> src/emu.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let op = self.fetch(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_op` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/emu.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] 13 | [INFO] [stdout] 14 | pub fn new(&mut self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn push(&mut self, val: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn pop(&mut self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn fetch(&mut self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn exec(&mut self, op: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn timer_tick(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RAM` is never used [INFO] [stdout] --> src/definitions.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const RAM: usize = 4096; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REGS` is never used [INFO] [stdout] --> src/definitions.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const REGS: usize = 16; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_SIZE` is never used [INFO] [stdout] --> src/definitions.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const STACK_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_KEYS` is never used [INFO] [stdout] --> src/definitions.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const NUM_KEYS: usize = 16; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `START_ADDR` is never used [INFO] [stdout] --> src/definitions.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const START_ADDR: u16 = 0x200; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISP_ROWS` is never used [INFO] [stdout] --> src/definitions.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DISP_ROWS: usize = 32; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISP_COLS` is never used [INFO] [stdout] --> src/definitions.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DISP_COLS: usize = 64; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/definitions.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTSET_SIZE` is never used [INFO] [stdout] --> src/font.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const FONTSET_SIZE: usize = 80; // 80 rows of hex, 5 per character [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTSET` is never used [INFO] [stdout] --> src/font.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const FONTSET: [u8; FONTSET_SIZE] = [ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `op` [INFO] [stdout] --> src/emu.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let op = self.fetch(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_op` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 16 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/emu.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] 13 | [INFO] [stdout] 14 | pub fn new(&mut self) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn push(&mut self, val: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn pop(&mut self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn fetch(&mut self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn exec(&mut self, op: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn timer_tick(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RAM` is never used [INFO] [stdout] --> src/definitions.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const RAM: usize = 4096; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REGS` is never used [INFO] [stdout] --> src/definitions.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const REGS: usize = 16; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_SIZE` is never used [INFO] [stdout] --> src/definitions.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const STACK_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_KEYS` is never used [INFO] [stdout] --> src/definitions.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const NUM_KEYS: usize = 16; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `START_ADDR` is never used [INFO] [stdout] --> src/definitions.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const START_ADDR: u16 = 0x200; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISP_ROWS` is never used [INFO] [stdout] --> src/definitions.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DISP_ROWS: usize = 32; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISP_COLS` is never used [INFO] [stdout] --> src/definitions.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DISP_COLS: usize = 64; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/definitions.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTSET_SIZE` is never used [INFO] [stdout] --> src/font.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const FONTSET_SIZE: usize = 80; // 80 rows of hex, 5 per character [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTSET` is never used [INFO] [stdout] --> src/font.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const FONTSET: [u8; FONTSET_SIZE] = [ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 16 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.90s [INFO] running `Command { std: "docker" "inspect" "fd99aa81ecc280d77733ff1c9b58ad85f7d0050515d7e1efe0fa20fb79b864a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd99aa81ecc280d77733ff1c9b58ad85f7d0050515d7e1efe0fa20fb79b864a7", kill_on_drop: false }` [INFO] [stdout] fd99aa81ecc280d77733ff1c9b58ad85f7d0050515d7e1efe0fa20fb79b864a7