[INFO] cloning repository https://github.com/georgyangelov/chess-lib [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/georgyangelov/chess-lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgyangelov%2Fchess-lib", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgyangelov%2Fchess-lib'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bd666c6d8f625ae08021a11bf228c9e4ce45e9de [INFO] testing georgyangelov/chess-lib against 1.55.0 for beta-1.56-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeorgyangelov%2Fchess-lib" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/georgyangelov/chess-lib on toolchain 1.55.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/georgyangelov/chess-lib [INFO] finished tweaking git repo https://github.com/georgyangelov/chess-lib [INFO] tweaked toml for git repo https://github.com/georgyangelov/chess-lib written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/georgyangelov/chess-lib already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b6d985ba32a510a55f10e405b5c82a2d4f40d4e58543e4cf0a92bd519feef1a6 [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" "b6d985ba32a510a55f10e405b5c82a2d4f40d4e58543e4cf0a92bd519feef1a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b6d985ba32a510a55f10e405b5c82a2d4f40d4e58543e4cf0a92bd519feef1a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b6d985ba32a510a55f10e405b5c82a2d4f40d4e58543e4cf0a92bd519feef1a6", kill_on_drop: false }` [INFO] [stdout] b6d985ba32a510a55f10e405b5c82a2d4f40d4e58543e4cf0a92bd519feef1a6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=warn" "-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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6943195b16cc546f863cb6eb4f6645744763e0639243f989970b250905ae817a [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" "6943195b16cc546f863cb6eb4f6645744763e0639243f989970b250905ae817a", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.58 [INFO] [stderr] Compiling wasm-bindgen v0.2.69 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.69 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.69 [INFO] [stderr] Compiling serde_derive v1.0.119 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.69 [INFO] [stderr] Compiling serde v1.0.119 [INFO] [stderr] Compiling serde_json v1.0.61 [INFO] [stderr] Compiling js-sys v0.3.46 [INFO] [stderr] Compiling pgn-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `PGNMove` [INFO] [stdout] --> src/game/mod.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | use super::parser::{Parser, ParseError, PGNMove}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/parser/mod.rs:241:67 [INFO] [stdout] | [INFO] [stdout] 241 | let number = consume_value_optional!(self, Token::Integer(value), value); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chars` [INFO] [stdout] --> src/game/mod.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 727 | let chars: Vec = notation.chars().collect(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `promotion_piece` [INFO] [stdout] --> src/game/mod.rs:740:13 [INFO] [stdout] | [INFO] [stdout] 740 | let promotion_piece = matches.name("promotion").and_then( |m| Self::parse_piece_letter(m.as_str()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion_piece` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 40.96s [INFO] running `Command { std: "docker" "inspect" "6943195b16cc546f863cb6eb4f6645744763e0639243f989970b250905ae817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6943195b16cc546f863cb6eb4f6645744763e0639243f989970b250905ae817a", kill_on_drop: false }` [INFO] [stdout] 6943195b16cc546f863cb6eb4f6645744763e0639243f989970b250905ae817a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=warn" "-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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 39f7eced73d12b9d776e7f4b6d470c9da2ab57e1f70d8cd8020c3c99d1be6deb [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" "39f7eced73d12b9d776e7f4b6d470c9da2ab57e1f70d8cd8020c3c99d1be6deb", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `PGNMove` [INFO] [stdout] --> src/game/mod.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | use super::parser::{Parser, ParseError, PGNMove}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/parser/mod.rs:241:67 [INFO] [stdout] | [INFO] [stdout] 241 | let number = consume_value_optional!(self, Token::Integer(value), value); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chars` [INFO] [stdout] --> src/game/mod.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 727 | let chars: Vec = notation.chars().collect(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `promotion_piece` [INFO] [stdout] --> src/game/mod.rs:740:13 [INFO] [stdout] | [INFO] [stdout] 740 | let promotion_piece = matches.name("promotion").and_then( |m| Self::parse_piece_letter(m.as_str()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion_piece` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pgn-lib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `PGNMove` [INFO] [stdout] --> src/game/mod.rs:7:41 [INFO] [stdout] | [INFO] [stdout] 7 | use super::parser::{Parser, ParseError, PGNMove}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/parser/mod.rs:241:67 [INFO] [stdout] | [INFO] [stdout] 241 | let number = consume_value_optional!(self, Token::Integer(value), value); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chars` [INFO] [stdout] --> src/game/mod.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 727 | let chars: Vec = notation.chars().collect(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `promotion_piece` [INFO] [stdout] --> src/game/mod.rs:740:13 [INFO] [stdout] | [INFO] [stdout] 740 | let promotion_piece = matches.name("promotion").and_then( |m| Self::parse_piece_letter(m.as_str()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion_piece` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/test/mod.rs:190:33 [INFO] [stdout] | [INFO] [stdout] 190 | _ => panic!(format!("Invalid piece letter '{}'", letter)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 190 | _ => panic!("Invalid piece letter '{}'", letter) [INFO] [stdout] | -- -- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.93s [INFO] running `Command { std: "docker" "inspect" "39f7eced73d12b9d776e7f4b6d470c9da2ab57e1f70d8cd8020c3c99d1be6deb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39f7eced73d12b9d776e7f4b6d470c9da2ab57e1f70d8cd8020c3c99d1be6deb", kill_on_drop: false }` [INFO] [stdout] 39f7eced73d12b9d776e7f4b6d470c9da2ab57e1f70d8cd8020c3c99d1be6deb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=warn" "-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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "test" "--frozen", 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] 53c373ab34e35c2af01defe3f505bd31a2295aa26f2c45c13dd2eaf136266f92 [INFO] running `Command { std: "docker" "start" "-a" "53c373ab34e35c2af01defe3f505bd31a2295aa26f2c45c13dd2eaf136266f92", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `PGNMove` [INFO] [stderr] --> src/game/mod.rs:7:41 [INFO] [stderr] | [INFO] [stderr] 7 | use super::parser::{Parser, ParseError, PGNMove}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/parser/mod.rs:241:67 [INFO] [stderr] | [INFO] [stderr] 241 | let number = consume_value_optional!(self, Token::Integer(value), value); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chars` [INFO] [stderr] --> src/game/mod.rs:727:13 [INFO] [stderr] | [INFO] [stderr] 727 | let chars: Vec = notation.chars().collect(); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chars` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `promotion_piece` [INFO] [stderr] --> src/game/mod.rs:740:13 [INFO] [stderr] | [INFO] [stderr] 740 | let promotion_piece = matches.name("promotion").and_then( |m| Self::parse_piece_letter(m.as_str()) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion_piece` [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> src/test/mod.rs:190:33 [INFO] [stderr] | [INFO] [stderr] 190 | _ => panic!(format!("Invalid piece letter '{}'", letter)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 190 | _ => panic!("Invalid piece letter '{}'", letter) [INFO] [stderr] | -- -- [INFO] [stderr] [INFO] [stderr] warning: `pgn-lib` (lib) generated 4 warnings [INFO] [stderr] warning: `pgn-lib` (lib test) generated 5 warnings (4 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/pgn_lib-86290f7999b42b2e) [INFO] [stdout] [INFO] [stdout] running 30 tests [INFO] [stdout] test test::pgn_test::lexes_lichess_pgns ... ok [INFO] [stdout] test test::fen_test::test_simple_board_fen ... ok [INFO] [stdout] test test::rules_test::test_generating_pawn_moves_with_black ... ok [INFO] [stdout] test test::pgn_test::test_pgn_with_set_up_start_with_black_move_with_no_move_number ... ok [INFO] [stdout] test test::fen_test::test_initial_board_fen ... ok [INFO] [stdout] test test::rules_test::test_bishop_moves ... ok [INFO] [stdout] test test::fen_test::test_en_passant_square ... ok [INFO] [stdout] test test::pgn_test::test_pgn_with_set_up ... ok [INFO] [stdout] test test::rules_test::test_en_passant_takes ... ok [INFO] [stdout] test test::rules_test::test_generating_pawn_moves_with_white ... ok [INFO] [stdout] test test::rules_test::test_debug_positions ... ok [INFO] [stdout] test test::pgn_test::test_pgn_to_game ... ok [INFO] [stdout] test test::pgn_test::test_parse_weird_moves ... ok [INFO] [stdout] test test::rules_test::test_knight_moves ... ok [INFO] [stdout] test test::rules_test::test_en_passant_takes_by_black ... ok [INFO] [stdout] test test::pgn_test::test_parse_simple_pgns ... ok [INFO] [stdout] test test::pgn_test::test_parse_move_without_number ... ok [INFO] [stdout] test test::rules_test::test_knight_moves_at_edge ... ok [INFO] [stdout] test test::rules_test::test_pawn_takes ... ok [INFO] [stdout] test test::rules_test::test_rook_moves_cannot_move_past_self_piece ... ok [INFO] [stdout] test test::rules_test::test_rook_moves ... ok [INFO] [stdout] test test::rules_test::test_simple_checks ... ok [INFO] [stdout] test test::rules_test::test_more_complex_moves ... ok [INFO] [stdout] test test::rules_test::test_need_to_move_out_of_check ... ok [INFO] [stdout] test test::pgn_test::test_pgn_with_set_up_start_with_black_move ... ok [INFO] [stdout] test test::rules_test::test_moving_into_check ... ok [INFO] [stdout] test test::rules_test::test_simple_moves ... ok [INFO] [stdout] test test::rules_test::test_king_moves ... ok [INFO] [stdout] test test::test_reading_positions ... ok [INFO] [stderr] Doc-tests pgn-lib [INFO] [stdout] test test::rules_test::test_queen_moves ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "53c373ab34e35c2af01defe3f505bd31a2295aa26f2c45c13dd2eaf136266f92", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53c373ab34e35c2af01defe3f505bd31a2295aa26f2c45c13dd2eaf136266f92", kill_on_drop: false }` [INFO] [stdout] 53c373ab34e35c2af01defe3f505bd31a2295aa26f2c45c13dd2eaf136266f92