[INFO] cloning repository segfo/qrcode [INFO] running `"git" "clone" "--bare" "git://github.com/segfo/qrcode.git" "work/cache/sources/gh/segfo/qrcode"` [INFO] [stderr] Cloning into bare repository 'work/cache/sources/gh/segfo/qrcode'... [INFO] running `"git" "clone" "work/cache/sources/gh/segfo/qrcode" "work/ex/pr-61629/sources/master#c8865d8e195813ade6b84434ac9f8850e7112d1a/gh/segfo/qrcode"` [INFO] [stderr] Cloning into 'work/ex/pr-61629/sources/master#c8865d8e195813ade6b84434ac9f8850e7112d1a/gh/segfo/qrcode'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/segfo/qrcode" "work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode"` [INFO] [stderr] Cloning into 'work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ffb9a41e9c31e5a97bb0b329e57758914e79b68f [INFO] sha for GitHub repo segfo/qrcode: ffb9a41e9c31e5a97bb0b329e57758914e79b68f [INFO] validating manifest of segfo/qrcode on toolchain master#c8865d8e195813ade6b84434ac9f8850e7112d1a [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c8865d8e195813ade6b84434ac9f8850e7112d1a-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of segfo/qrcode on toolchain try#e212b7d492c96d3837691ba29d32d5f468933fb8 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+e212b7d492c96d3837691ba29d32d5f468933fb8-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing segfo/qrcode [INFO] finished frobbing segfo/qrcode [INFO] frobbed toml for segfo/qrcode written to work/ex/pr-61629/sources/master#c8865d8e195813ade6b84434ac9f8850e7112d1a/gh/segfo/qrcode/Cargo.toml [INFO] started frobbing segfo/qrcode [INFO] finished frobbing segfo/qrcode [INFO] frobbed toml for segfo/qrcode written to work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode/Cargo.toml [INFO] crate segfo/qrcode already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c8865d8e195813ade6b84434ac9f8850e7112d1a-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded qrcodegen v1.4.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+e212b7d492c96d3837691ba29d32d5f468933fb8-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing segfo/qrcode against try#e212b7d492c96d3837691ba29d32d5f468933fb8 for pr-61629 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-61629/worker-2/try#e212b7d492c96d3837691ba29d32d5f468933fb8:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+e212b7d492c96d3837691ba29d32d5f468933fb8-alt" "build" "--frozen"` [INFO] [stdout] 8297d6b79d65268dd88288b3e32c13d98e5f1c99a1f067a82ab6ab111b1af90b [INFO] running `"docker" "start" "-a" "8297d6b79d65268dd88288b3e32c13d98e5f1c99a1f067a82ab6ab111b1af90b"` [INFO] [stderr] Compiling qrcodegen v1.4.0 [INFO] [stderr] Compiling qrcode v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: #[warn(ellipsis_inclusive_range_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:33 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:45 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:57 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | 0x30...0x39 =>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | 0x41...0x5a|0x61...0x7a=>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:92:33 [INFO] [stderr] | [INFO] [stderr] 92 | 0x41...0x5a|0x61...0x7a=>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/data_type.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::*` [INFO] [stderr] --> src/data_type.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | use std::io::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / macro_rules! input { [INFO] [stderr] 132 | | (source = $s:expr, $($r:tt)*) => { [INFO] [stderr] 133 | | let mut iter = $s.split_whitespace(); [INFO] [stderr] 134 | | let mut next = || { iter.next().unwrap() }; [INFO] [stderr] ... | [INFO] [stderr] 149 | | }; [INFO] [stderr] 150 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:152:1 [INFO] [stderr] | [INFO] [stderr] 152 | / macro_rules! input_inner { [INFO] [stderr] 153 | | ($next:expr) => {}; [INFO] [stderr] 154 | | ($next:expr, ) => {}; [INFO] [stderr] 155 | | [INFO] [stderr] ... | [INFO] [stderr] 159 | | }; [INFO] [stderr] 160 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / macro_rules! read_value { [INFO] [stderr] 163 | | ($next:expr, ( $($t:tt),* )) => { [INFO] [stderr] 164 | | ( $(read_value!($next, $t)),* ) [INFO] [stderr] 165 | | }; [INFO] [stderr] ... | [INFO] [stderr] 181 | | }; [INFO] [stderr] 182 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `data_type` [INFO] [stderr] --> src/test.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use data_type; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `data_type::*` [INFO] [stderr] --> src/test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use data_type::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:49:57 [INFO] [stderr] | [INFO] [stderr] 49 | fn text2qr(data:&str) -> std::result::Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:54:60 [INFO] [stderr] | [INFO] [stderr] 54 | fn binary2qr(data:&[u8]) -> std::result::Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:59:72 [INFO] [stderr] | [INFO] [stderr] 59 | fn data2qr(data:&[u8],kind:DataKind) -> std::result::Result>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:67:71 [INFO] [stderr] | [INFO] [stderr] 67 | fn load_to_file(input_filename:&str)->std::result::Result,Box>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.66s [INFO] running `"docker" "inspect" "8297d6b79d65268dd88288b3e32c13d98e5f1c99a1f067a82ab6ab111b1af90b"` [INFO] running `"docker" "rm" "-f" "8297d6b79d65268dd88288b3e32c13d98e5f1c99a1f067a82ab6ab111b1af90b"` [INFO] [stdout] 8297d6b79d65268dd88288b3e32c13d98e5f1c99a1f067a82ab6ab111b1af90b [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-61629/worker-2/try#e212b7d492c96d3837691ba29d32d5f468933fb8:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+e212b7d492c96d3837691ba29d32d5f468933fb8-alt" "test" "--frozen" "--no-run"` [INFO] [stdout] 0cd16c36ecb62c32651ece7090312e94003b84afea089885f25a139aae902ed3 [INFO] running `"docker" "start" "-a" "0cd16c36ecb62c32651ece7090312e94003b84afea089885f25a139aae902ed3"` [INFO] [stderr] Compiling qrcode v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: #[warn(ellipsis_inclusive_range_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:33 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:45 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:88:57 [INFO] [stderr] | [INFO] [stderr] 88 | 0x20...0x2f|0x3a...0x40|0x5b...0x60|0x7b...0x7e=>num+=1, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | 0x30...0x39 =>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | 0x41...0x5a|0x61...0x7a=>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/data_type.rs:92:33 [INFO] [stderr] | [INFO] [stderr] 92 | 0x41...0x5a|0x61...0x7a=>{ [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/data_type.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::*` [INFO] [stderr] --> src/data_type.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | use std::io::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:131:1 [INFO] [stderr] | [INFO] [stderr] 131 | / macro_rules! input { [INFO] [stderr] 132 | | (source = $s:expr, $($r:tt)*) => { [INFO] [stderr] 133 | | let mut iter = $s.split_whitespace(); [INFO] [stderr] 134 | | let mut next = || { iter.next().unwrap() }; [INFO] [stderr] ... | [INFO] [stderr] 149 | | }; [INFO] [stderr] 150 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:152:1 [INFO] [stderr] | [INFO] [stderr] 152 | / macro_rules! input_inner { [INFO] [stderr] 153 | | ($next:expr) => {}; [INFO] [stderr] 154 | | ($next:expr, ) => {}; [INFO] [stderr] 155 | | [INFO] [stderr] ... | [INFO] [stderr] 159 | | }; [INFO] [stderr] 160 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/data_type.rs:162:1 [INFO] [stderr] | [INFO] [stderr] 162 | / macro_rules! read_value { [INFO] [stderr] 163 | | ($next:expr, ( $($t:tt),* )) => { [INFO] [stderr] 164 | | ( $(read_value!($next, $t)),* ) [INFO] [stderr] 165 | | }; [INFO] [stderr] ... | [INFO] [stderr] 181 | | }; [INFO] [stderr] 182 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:49:57 [INFO] [stderr] | [INFO] [stderr] 49 | fn text2qr(data:&str) -> std::result::Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:54:60 [INFO] [stderr] | [INFO] [stderr] 54 | fn binary2qr(data:&[u8]) -> std::result::Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:59:72 [INFO] [stderr] | [INFO] [stderr] 59 | fn data2qr(data:&[u8],kind:DataKind) -> std::result::Result>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:67:71 [INFO] [stderr] | [INFO] [stderr] 67 | fn load_to_file(input_filename:&str)->std::result::Result,Box>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.36s [INFO] running `"docker" "inspect" "0cd16c36ecb62c32651ece7090312e94003b84afea089885f25a139aae902ed3"` [INFO] running `"docker" "rm" "-f" "0cd16c36ecb62c32651ece7090312e94003b84afea089885f25a139aae902ed3"` [INFO] [stdout] 0cd16c36ecb62c32651ece7090312e94003b84afea089885f25a139aae902ed3 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-61629/worker-2/try#e212b7d492c96d3837691ba29d32d5f468933fb8:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-61629/sources/try#e212b7d492c96d3837691ba29d32d5f468933fb8/gh/segfo/qrcode:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+e212b7d492c96d3837691ba29d32d5f468933fb8-alt" "test" "--frozen"` [INFO] [stdout] 0687f1c4b93fb44c7292bfaff5058bc13af8b58b02b7c621d98fd2cd6cd66e01 [INFO] running `"docker" "start" "-a" "0687f1c4b93fb44c7292bfaff5058bc13af8b58b02b7c621d98fd2cd6cd66e01"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running /opt/crater/target/debug/deps/qrcode-09f67daab41674aa [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test::datatype_autodetection_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "0687f1c4b93fb44c7292bfaff5058bc13af8b58b02b7c621d98fd2cd6cd66e01"` [INFO] running `"docker" "rm" "-f" "0687f1c4b93fb44c7292bfaff5058bc13af8b58b02b7c621d98fd2cd6cd66e01"` [INFO] [stdout] 0687f1c4b93fb44c7292bfaff5058bc13af8b58b02b7c621d98fd2cd6cd66e01