[INFO] cloning repository https://github.com/iamsix/oxidenes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iamsix/oxidenes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamsix%2Foxidenes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamsix%2Foxidenes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 64b2908a16cb816da54ad1242ac21292c764d322 [INFO] checking iamsix/oxidenes against try#c8bdaa84ec1b37f18f30375e196a65b7602f3790 for pr-73345 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamsix%2Foxidenes" "/workspace/builds/worker-0/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/iamsix/oxidenes on toolchain c8bdaa84ec1b37f18f30375e196a65b7602f3790 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/iamsix/oxidenes [INFO] finished tweaking git repo https://github.com/iamsix/oxidenes [INFO] tweaked toml for git repo https://github.com/iamsix/oxidenes written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate git repo https://github.com/iamsix/oxidenes already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] error: the lock file /workspace/builds/worker-0/source/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag. [INFO] the lockfile is outdated, regenerating it [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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:6c9ffe128752d56c8d75334ed354142a5229917ed99767f56566dd8e857ad726" "/opt/rustwide/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "metadata" "--no-deps" "--format-version=1", 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] 6b7e78a8ac9ee42526044e59c9da653d212700a73c5f4a789a1f6b0c52663e89 [INFO] running `Command { std: "docker" "start" "-a" "6b7e78a8ac9ee42526044e59c9da653d212700a73c5f4a789a1f6b0c52663e89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6b7e78a8ac9ee42526044e59c9da653d212700a73c5f4a789a1f6b0c52663e89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b7e78a8ac9ee42526044e59c9da653d212700a73c5f4a789a1f6b0c52663e89", kill_on_drop: false }` [INFO] [stdout] 6b7e78a8ac9ee42526044e59c9da653d212700a73c5f4a789a1f6b0c52663e89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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:6c9ffe128752d56c8d75334ed354142a5229917ed99767f56566dd8e857ad726" "/opt/rustwide/cargo-home/bin/cargo" "+c8bdaa84ec1b37f18f30375e196a65b7602f3790" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a720b471df471f227c22ff5e558962eb2f33ec7ba2e52bd86063b14776fb7bc9 [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" "a720b471df471f227c22ff5e558962eb2f33ec7ba2e52bd86063b14776fb7bc9", kill_on_drop: false }` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling sdl2-sys v0.19.0 [INFO] [stderr] Checking bitflags v0.6.0 [INFO] [stderr] Checking lazy_static v0.2.11 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-iter v0.1.41 [INFO] [stderr] Checking num-complex v0.1.43 [INFO] [stderr] Checking num-bigint v0.1.44 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking sdl2 v0.20.1 [INFO] [stderr] Checking oxidenes v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:99:19 [INFO] [stdout] | [INFO] [stdout] 99 | 0x0000...0x03FF => self.chr_bank_0000 + addr as usize, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | 0x0400...0x07FF => self.chr_bank_0400 + (addr as usize - 0x0400), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:101:19 [INFO] [stdout] | [INFO] [stdout] 101 | 0x0800...0x0BFF => self.chr_bank_0800 + (addr as usize - 0x0800), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | 0x0C00...0x0FFF => self.chr_bank_0C00 + (addr as usize - 0x0C00), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | 0x1000...0x13FF => self.chr_bank_1000 + (addr as usize - 0x1000), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | 0x1400...0x17FF => self.chr_bank_1400 + (addr as usize - 0x1400), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:105:19 [INFO] [stdout] | [INFO] [stdout] 105 | 0x1800...0x1BFF => self.chr_bank_1800 + (addr as usize - 0x1800), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 106 | 0x1C00...0x1FFF => self.chr_bank_1C00 + (addr as usize - 0x1C00), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:289:23 [INFO] [stdout] | [INFO] [stdout] 289 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | PRG_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cart.rs:368:43 [INFO] [stdout] | [INFO] [stdout] 368 | self.set_8kb_prg_bank((lastbank - 2), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:442:23 [INFO] [stdout] | [INFO] [stdout] 442 | 0x8000...0x9FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:454:23 [INFO] [stdout] | [INFO] [stdout] 454 | 0xA000...0xBFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:466:23 [INFO] [stdout] | [INFO] [stdout] 466 | 0xC000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:474:23 [INFO] [stdout] | [INFO] [stdout] 474 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:502:23 [INFO] [stdout] | [INFO] [stdout] 502 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:507:26 [INFO] [stdout] | [INFO] [stdout] 507 | PRG_ROM_START...PRG_ROM_END => self.rom[self.map_rom(addr as usize)], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:515:23 [INFO] [stdout] | [INFO] [stdout] 515 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:520:26 [INFO] [stdout] | [INFO] [stdout] 520 | PRG_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:531:19 [INFO] [stdout] | [INFO] [stdout] 531 | 0x8000...0x9FFF => {(addr - 0x8000) + self.prg_bank_8000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:532:19 [INFO] [stdout] | [INFO] [stdout] 532 | 0xA000...0xBFFF => {(addr - 0xA000) + self.prg_bank_A000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:533:19 [INFO] [stdout] | [INFO] [stdout] 533 | 0xC000...0xDFFF => {(addr - 0xC000) + self.prg_bank_C000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:534:19 [INFO] [stdout] | [INFO] [stdout] 534 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:774:22 [INFO] [stdout] | [INFO] [stdout] 774 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:794:32 [INFO] [stdout] | [INFO] [stdout] 794 | EXPANSION_ROM_START...PRG_ROM_END => self.bus.cart.read_cart_u8(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:807:22 [INFO] [stdout] | [INFO] [stdout] 807 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:815:32 [INFO] [stdout] | [INFO] [stdout] 815 | EXPANSION_ROM_START...PRG_ROM_END => self.bus.cart.read_cart_u16(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:828:22 [INFO] [stdout] | [INFO] [stdout] 828 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:854:32 [INFO] [stdout] | [INFO] [stdout] 854 | APU_REGISTERS_START...APU_REGISTERS_END | FRAME_TIMER => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:883:32 [INFO] [stdout] | [INFO] [stdout] 883 | EXPANSION_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/apu.rs:689:55 [INFO] [stdout] | [INFO] [stdout] 689 | self.output = TRI_WAVEFORM[self.wave_pos];; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:265:19 [INFO] [stdout] | [INFO] [stdout] 265 | 0x0000...0x1FFF => self.chr.write_u8(v_addr, data), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:266:19 [INFO] [stdout] | [INFO] [stdout] 266 | 0x2000...0x2FFF => self.vram[self.map_vram(v_addr)] = data, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | 0x3000...0x3EFF => panic!("Need mirrors of 0x2000-0x2EFF"), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:268:19 [INFO] [stdout] | [INFO] [stdout] 268 | 0x3F00...0x3FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:289:19 [INFO] [stdout] | [INFO] [stdout] 289 | 0x0000...0x1FFF => self.chr.read_u8(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | 0x2000...0x2FFF => self.vram[self.map_vram(addr)], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:291:19 [INFO] [stdout] | [INFO] [stdout] 291 | 0x3000...0x3EFF => panic!("Need mirrors of 0x2000-0x2EFF"), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:292:19 [INFO] [stdout] | [INFO] [stdout] 292 | 0x3F00...0x3FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/ppu.rs:576:78 [INFO] [stdout] | [INFO] [stdout] 576 | sprite_data1 = self.read_data(index + 8 + offset as u16);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/ppu.rs:577:79 [INFO] [stdout] | [INFO] [stdout] 577 | sprite_data2 = self.read_data(index + 16 + offset as u16);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:99:19 [INFO] [stdout] | [INFO] [stdout] 99 | 0x0000...0x03FF => self.chr_bank_0000 + addr as usize, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | 0x0400...0x07FF => self.chr_bank_0400 + (addr as usize - 0x0400), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:101:19 [INFO] [stdout] | [INFO] [stdout] 101 | 0x0800...0x0BFF => self.chr_bank_0800 + (addr as usize - 0x0800), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | 0x0C00...0x0FFF => self.chr_bank_0C00 + (addr as usize - 0x0C00), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | 0x1000...0x13FF => self.chr_bank_1000 + (addr as usize - 0x1000), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | 0x1400...0x17FF => self.chr_bank_1400 + (addr as usize - 0x1400), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:105:19 [INFO] [stdout] | [INFO] [stdout] 105 | 0x1800...0x1BFF => self.chr_bank_1800 + (addr as usize - 0x1800), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 106 | 0x1C00...0x1FFF => self.chr_bank_1C00 + (addr as usize - 0x1C00), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:289:23 [INFO] [stdout] | [INFO] [stdout] 289 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:294:26 [INFO] [stdout] | [INFO] [stdout] 294 | PRG_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cart.rs:368:43 [INFO] [stdout] | [INFO] [stdout] 368 | self.set_8kb_prg_bank((lastbank - 2), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:442:23 [INFO] [stdout] | [INFO] [stdout] 442 | 0x8000...0x9FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:454:23 [INFO] [stdout] | [INFO] [stdout] 454 | 0xA000...0xBFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:466:23 [INFO] [stdout] | [INFO] [stdout] 466 | 0xC000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:474:23 [INFO] [stdout] | [INFO] [stdout] 474 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:502:23 [INFO] [stdout] | [INFO] [stdout] 502 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:507:26 [INFO] [stdout] | [INFO] [stdout] 507 | PRG_ROM_START...PRG_ROM_END => self.rom[self.map_rom(addr as usize)], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:515:23 [INFO] [stdout] | [INFO] [stdout] 515 | SRAM_START...SRAM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:520:26 [INFO] [stdout] | [INFO] [stdout] 520 | PRG_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:531:19 [INFO] [stdout] | [INFO] [stdout] 531 | 0x8000...0x9FFF => {(addr - 0x8000) + self.prg_bank_8000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:532:19 [INFO] [stdout] | [INFO] [stdout] 532 | 0xA000...0xBFFF => {(addr - 0xA000) + self.prg_bank_A000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:533:19 [INFO] [stdout] | [INFO] [stdout] 533 | 0xC000...0xDFFF => {(addr - 0xC000) + self.prg_bank_C000 + INES_OFFSET} [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cart.rs:534:19 [INFO] [stdout] | [INFO] [stdout] 534 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:774:22 [INFO] [stdout] | [INFO] [stdout] 774 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:794:32 [INFO] [stdout] | [INFO] [stdout] 794 | EXPANSION_ROM_START...PRG_ROM_END => self.bus.cart.read_cart_u8(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:807:22 [INFO] [stdout] | [INFO] [stdout] 807 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:815:32 [INFO] [stdout] | [INFO] [stdout] 815 | EXPANSION_ROM_START...PRG_ROM_END => self.bus.cart.read_cart_u16(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:828:22 [INFO] [stdout] | [INFO] [stdout] 828 | RAM_START...RAM_VIRTUAL_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:854:32 [INFO] [stdout] | [INFO] [stdout] 854 | APU_REGISTERS_START...APU_REGISTERS_END | FRAME_TIMER => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/cpu.rs:883:32 [INFO] [stdout] | [INFO] [stdout] 883 | EXPANSION_ROM_START...PRG_ROM_END => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/apu.rs:689:55 [INFO] [stdout] | [INFO] [stdout] 689 | self.output = TRI_WAVEFORM[self.wave_pos];; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:265:19 [INFO] [stdout] | [INFO] [stdout] 265 | 0x0000...0x1FFF => self.chr.write_u8(v_addr, data), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:266:19 [INFO] [stdout] | [INFO] [stdout] 266 | 0x2000...0x2FFF => self.vram[self.map_vram(v_addr)] = data, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | 0x3000...0x3EFF => panic!("Need mirrors of 0x2000-0x2EFF"), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:268:19 [INFO] [stdout] | [INFO] [stdout] 268 | 0x3F00...0x3FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:289:19 [INFO] [stdout] | [INFO] [stdout] 289 | 0x0000...0x1FFF => self.chr.read_u8(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | 0x2000...0x2FFF => self.vram[self.map_vram(addr)], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:291:19 [INFO] [stdout] | [INFO] [stdout] 291 | 0x3000...0x3EFF => panic!("Need mirrors of 0x2000-0x2EFF"), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/ppu.rs:292:19 [INFO] [stdout] | [INFO] [stdout] 292 | 0x3F00...0x3FFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/ppu.rs:576:78 [INFO] [stdout] | [INFO] [stdout] 576 | sprite_data1 = self.read_data(index + 8 + offset as u16);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/ppu.rs:577:79 [INFO] [stdout] | [INFO] [stdout] 577 | sprite_data2 = self.read_data(index + 16 + offset as u16);; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `switch_2kb_bank` [INFO] [stdout] --> src/cart.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn switch_2kb_bank (&mut self, bank: u8, window: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STEP5` [INFO] [stdout] --> src/apu.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 36 | const STEP5: usize = 37281; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `chr_bank_0C00` should have a snake case name [INFO] [stdout] --> src/cart.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | chr_bank_0C00: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `chr_bank_0_c00` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `chr_bank_1C00` should have a snake case name [INFO] [stdout] --> src/cart.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | chr_bank_1C00: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `chr_bank_1_c00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_A000` should have a snake case name [INFO] [stdout] --> src/cart.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | prg_bank_A000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_a000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_C000` should have a snake case name [INFO] [stdout] --> src/cart.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | prg_bank_C000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `prg_bank_c000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_E000` should have a snake case name [INFO] [stdout] --> src/cart.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | prg_bank_E000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_e000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_A000` should have a snake case name [INFO] [stdout] --> src/cart.rs:235:13 [INFO] [stdout] | [INFO] [stdout] 235 | let prg_bank_A000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_a000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_C000` should have a snake case name [INFO] [stdout] --> src/cart.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | let prg_bank_C000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `prg_bank_c000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_E000` should have a snake case name [INFO] [stdout] --> src/cart.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let prg_bank_E000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_e000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_400A` should have a snake case name [INFO] [stdout] --> src/apu.rs:672:12 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn write_400A (&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `write_400_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_400B` should have a snake case name [INFO] [stdout] --> src/apu.rs:676:12 [INFO] [stdout] | [INFO] [stdout] 676 | pub fn write_400B (&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `write_400_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `switch_2kb_bank` [INFO] [stdout] --> src/cart.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn switch_2kb_bank (&mut self, bank: u8, window: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STEP5` [INFO] [stdout] --> src/apu.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 36 | const STEP5: usize = 37281; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 53 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `chr_bank_0C00` should have a snake case name [INFO] [stdout] --> src/cart.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | chr_bank_0C00: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `chr_bank_0_c00` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `chr_bank_1C00` should have a snake case name [INFO] [stdout] --> src/cart.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | chr_bank_1C00: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `chr_bank_1_c00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_A000` should have a snake case name [INFO] [stdout] --> src/cart.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | prg_bank_A000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_a000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_C000` should have a snake case name [INFO] [stdout] --> src/cart.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | prg_bank_C000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `prg_bank_c000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `prg_bank_E000` should have a snake case name [INFO] [stdout] --> src/cart.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | prg_bank_E000: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_e000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_A000` should have a snake case name [INFO] [stdout] --> src/cart.rs:235:13 [INFO] [stdout] | [INFO] [stdout] 235 | let prg_bank_A000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_a000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_C000` should have a snake case name [INFO] [stdout] --> src/cart.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | let prg_bank_C000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `prg_bank_c000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prg_bank_E000` should have a snake case name [INFO] [stdout] --> src/cart.rs:237:13 [INFO] [stdout] | [INFO] [stdout] 237 | let prg_bank_E000: usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prg_bank_e000` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_400A` should have a snake case name [INFO] [stdout] --> src/apu.rs:672:12 [INFO] [stdout] | [INFO] [stdout] 672 | pub fn write_400A (&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `write_400_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_400B` should have a snake case name [INFO] [stdout] --> src/apu.rs:676:12 [INFO] [stdout] | [INFO] [stdout] 676 | pub fn write_400B (&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `write_400_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 53 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.93s [INFO] running `Command { std: "docker" "inspect" "a720b471df471f227c22ff5e558962eb2f33ec7ba2e52bd86063b14776fb7bc9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a720b471df471f227c22ff5e558962eb2f33ec7ba2e52bd86063b14776fb7bc9", kill_on_drop: false }` [INFO] [stdout] a720b471df471f227c22ff5e558962eb2f33ec7ba2e52bd86063b14776fb7bc9