Dec 04 13:33:44.988 INFO checking mwalczyk/spectrum_learn_rs against try#1df97983eb2057dc6a8f7eb364e263b51ae23230 for pr-56481 Dec 04 13:33:44.988 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56481/worker-5/try#1df97983eb2057dc6a8f7eb364e263b51ae23230:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-5/pr-56481/try#1df97983eb2057dc6a8f7eb364e263b51ae23230:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +1df97983eb2057dc6a8f7eb364e263b51ae23230-alt check --frozen --all --all-targets" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 04 13:33:45.232 INFO [stdout] 18ea51be9ef5719fa21fbc5add0fede618cfc4a00212e7e05b6e5015dd6a066b Dec 04 13:33:45.237 INFO running `"docker" "start" "-a" "18ea51be9ef5719fa21fbc5add0fede618cfc4a00212e7e05b6e5015dd6a066b"` Dec 04 13:33:45.786 INFO [stderr] usermod: no changes Dec 04 13:33:45.930 INFO [stderr] Compiling serde v0.9.12 Dec 04 13:33:45.930 INFO [stderr] Checking lazy_static v0.2.5 Dec 04 13:33:45.933 INFO [stderr] Compiling phf_generator v0.7.21 Dec 04 13:33:45.934 INFO [stderr] Checking csv v0.15.0 Dec 04 13:33:46.293 INFO [stderr] Checking shared_library v0.1.5 Dec 04 13:33:46.293 INFO [stderr] Checking x11-dl v2.12.0 Dec 04 13:33:46.618 INFO [stderr] Compiling phf_codegen v0.7.21 Dec 04 13:33:46.871 INFO [stderr] Checking osmesa-sys v0.1.2 Dec 04 13:33:47.348 INFO [stderr] Compiling target_build_utils v0.3.0 Dec 04 13:34:00.407 INFO [stderr] Compiling serde_json v0.9.9 Dec 04 13:34:08.419 INFO [stderr] Compiling libloading v0.3.4 Dec 04 13:34:11.139 INFO [stderr] Checking dlib v0.3.1 Dec 04 13:34:11.412 INFO [stderr] Checking wayland-sys v0.7.8 Dec 04 13:34:11.992 INFO [stderr] Checking wayland-client v0.7.8 Dec 04 13:34:13.560 INFO [stderr] Checking wayland-kbd v0.6.3 Dec 04 13:34:13.568 INFO [stderr] Checking wayland-window v0.4.4 Dec 04 13:34:15.263 INFO [stderr] Checking winit v0.5.11 Dec 04 13:34:16.898 INFO [stderr] Checking glutin v0.7.4 Dec 04 13:34:18.576 INFO [stderr] Checking spectrum_learn_rs v0.1.0 (/source) Dec 04 13:34:19.591 INFO [stderr] warning: unused imports: `GLboolean`, `GLfloat`, `GLsizeiptr` Dec 04 13:34:19.591 INFO [stderr] --> src/program.rs:3:17 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 3 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: unused import: `std::mem` Dec 04 13:34:19.591 INFO [stderr] --> src/program.rs:4:5 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 4 | use std::mem; Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: unused import: `std::error::Error` Dec 04 13:34:19.591 INFO [stderr] --> src/program.rs:9:5 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 9 | use std::error::Error; Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: unused imports: `GLboolean`, `GLchar`, `GLenum`, `GLint`, `GLuint` Dec 04 13:34:19.591 INFO [stderr] --> src/main.rs:11:26 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 11 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.591 INFO [stderr] --> src/main.rs:49:5 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 49 | /// Setup the window Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.591 INFO [stderr] --> src/main.rs:80:9 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 80 | /// Create a VBO and VAO for rendering the scatter plot Dec 04 13:34:19.591 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.591 INFO [stderr] Dec 04 13:34:19.591 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.591 INFO [stderr] --> src/main.rs:98:9 Dec 04 13:34:19.591 INFO [stderr] | Dec 04 13:34:19.591 INFO [stderr] 98 | /// Create a VBO and VAO for rendering the best-fit line Dec 04 13:34:19.592 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.592 INFO [stderr] Dec 04 13:34:19.592 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.592 INFO [stderr] --> src/main.rs:116:9 Dec 04 13:34:19.592 INFO [stderr] | Dec 04 13:34:19.592 INFO [stderr] 116 | /// Bind the shader program that will be used to draw the Dec 04 13:34:19.592 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.592 INFO [stderr] Dec 04 13:34:19.735 INFO [stderr] warning: unused variable: `window_size` Dec 04 13:34:19.735 INFO [stderr] --> src/main.rs:53:9 Dec 04 13:34:19.735 INFO [stderr] | Dec 04 13:34:19.735 INFO [stderr] 53 | let window_size = window.get_inner_size(); Dec 04 13:34:19.735 INFO [stderr] | ^^^^^^^^^^^ help: consider using `_window_size` instead Dec 04 13:34:19.735 INFO [stderr] | Dec 04 13:34:19.735 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 04 13:34:19.735 INFO [stderr] Dec 04 13:34:19.735 INFO [stderr] warning: unused variable: `shader_program` Dec 04 13:34:19.735 INFO [stderr] --> src/main.rs:67:13 Dec 04 13:34:19.735 INFO [stderr] | Dec 04 13:34:19.735 INFO [stderr] 67 | let mut shader_program = 0; Dec 04 13:34:19.735 INFO [stderr] | ^^^^^^^^^^^^^^ help: consider using `_shader_program` instead Dec 04 13:34:19.735 INFO [stderr] Dec 04 13:34:19.747 INFO [stderr] warning: variable does not need to be mutable Dec 04 13:34:19.748 INFO [stderr] --> src/main.rs:67:9 Dec 04 13:34:19.748 INFO [stderr] | Dec 04 13:34:19.748 INFO [stderr] 67 | let mut shader_program = 0; Dec 04 13:34:19.748 INFO [stderr] | ----^^^^^^^^^^^^^^ Dec 04 13:34:19.748 INFO [stderr] | | Dec 04 13:34:19.748 INFO [stderr] | help: remove this `mut` Dec 04 13:34:19.748 INFO [stderr] | Dec 04 13:34:19.748 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 04 13:34:19.748 INFO [stderr] Dec 04 13:34:19.763 INFO [stderr] warning: struct is never constructed: `Line` Dec 04 13:34:19.763 INFO [stderr] --> src/linear_regression.rs:1:1 Dec 04 13:34:19.763 INFO [stderr] | Dec 04 13:34:19.763 INFO [stderr] 1 | pub struct Line { Dec 04 13:34:19.763 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 04 13:34:19.763 INFO [stderr] | Dec 04 13:34:19.763 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 04 13:34:19.763 INFO [stderr] Dec 04 13:34:19.763 INFO [stderr] warning: struct is never constructed: `Point` Dec 04 13:34:19.763 INFO [stderr] --> src/linear_regression.rs:6:1 Dec 04 13:34:19.763 INFO [stderr] | Dec 04 13:34:19.763 INFO [stderr] 6 | pub struct Point { Dec 04 13:34:19.763 INFO [stderr] | ^^^^^^^^^^^^^^^^ Dec 04 13:34:19.763 INFO [stderr] Dec 04 13:34:19.763 INFO [stderr] warning: method is never used: `learning_rate` Dec 04 13:34:19.763 INFO [stderr] --> src/linear_regression.rs:33:5 Dec 04 13:34:19.763 INFO [stderr] | Dec 04 13:34:19.763 INFO [stderr] 33 | pub fn learning_rate(mut self, rate: f32) -> LinearRegression<'a> { Dec 04 13:34:19.763 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.763 INFO [stderr] Dec 04 13:34:19.763 INFO [stderr] warning: method is never used: `unbind` Dec 04 13:34:19.763 INFO [stderr] --> src/program.rs:100:5 Dec 04 13:34:19.763 INFO [stderr] | Dec 04 13:34:19.763 INFO [stderr] 100 | pub fn unbind(&self) { Dec 04 13:34:19.763 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.763 INFO [stderr] Dec 04 13:34:19.779 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 04 13:34:19.779 INFO [stderr] --> src/main.rs:70:9 Dec 04 13:34:19.779 INFO [stderr] | Dec 04 13:34:19.779 INFO [stderr] 70 | window.make_current(); Dec 04 13:34:19.779 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.779 INFO [stderr] | Dec 04 13:34:19.779 INFO [stderr] = note: #[warn(unused_must_use)] on by default Dec 04 13:34:19.779 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 04 13:34:19.779 INFO [stderr] Dec 04 13:34:19.779 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 04 13:34:19.779 INFO [stderr] --> src/main.rs:154:9 Dec 04 13:34:19.779 INFO [stderr] | Dec 04 13:34:19.779 INFO [stderr] 154 | window.swap_buffers(); Dec 04 13:34:19.779 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.779 INFO [stderr] | Dec 04 13:34:19.779 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 04 13:34:19.779 INFO [stderr] Dec 04 13:34:19.907 INFO [stderr] warning: unused imports: `GLboolean`, `GLfloat`, `GLsizeiptr` Dec 04 13:34:19.907 INFO [stderr] --> src/program.rs:3:17 Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] 3 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 04 13:34:19.907 INFO [stderr] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 04 13:34:19.907 INFO [stderr] Dec 04 13:34:19.907 INFO [stderr] warning: unused import: `std::mem` Dec 04 13:34:19.907 INFO [stderr] --> src/program.rs:4:5 Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] 4 | use std::mem; Dec 04 13:34:19.907 INFO [stderr] | ^^^^^^^^ Dec 04 13:34:19.907 INFO [stderr] Dec 04 13:34:19.907 INFO [stderr] warning: unused import: `std::error::Error` Dec 04 13:34:19.907 INFO [stderr] --> src/program.rs:9:5 Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] 9 | use std::error::Error; Dec 04 13:34:19.907 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.907 INFO [stderr] Dec 04 13:34:19.907 INFO [stderr] warning: unused imports: `GLboolean`, `GLchar`, `GLenum`, `GLint`, `GLuint` Dec 04 13:34:19.907 INFO [stderr] --> src/main.rs:11:26 Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] 11 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 04 13:34:19.907 INFO [stderr] | ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^^^^ Dec 04 13:34:19.907 INFO [stderr] Dec 04 13:34:19.907 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.907 INFO [stderr] --> src/main.rs:49:5 Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] 49 | /// Setup the window Dec 04 13:34:19.907 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.907 INFO [stderr] | Dec 04 13:34:19.907 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 04 13:34:19.907 INFO [stderr] Dec 04 13:34:19.911 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.911 INFO [stderr] --> src/main.rs:80:9 Dec 04 13:34:19.911 INFO [stderr] | Dec 04 13:34:19.911 INFO [stderr] 80 | /// Create a VBO and VAO for rendering the scatter plot Dec 04 13:34:19.911 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.911 INFO [stderr] Dec 04 13:34:19.911 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.911 INFO [stderr] --> src/main.rs:98:9 Dec 04 13:34:19.911 INFO [stderr] | Dec 04 13:34:19.911 INFO [stderr] 98 | /// Create a VBO and VAO for rendering the best-fit line Dec 04 13:34:19.911 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.911 INFO [stderr] Dec 04 13:34:19.911 INFO [stderr] warning: doc comment not used by rustdoc Dec 04 13:34:19.911 INFO [stderr] --> src/main.rs:116:9 Dec 04 13:34:19.911 INFO [stderr] | Dec 04 13:34:19.911 INFO [stderr] 116 | /// Bind the shader program that will be used to draw the Dec 04 13:34:19.911 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:19.911 INFO [stderr] Dec 04 13:34:20.035 INFO [stderr] warning: unused variable: `window_size` Dec 04 13:34:20.035 INFO [stderr] --> src/main.rs:53:9 Dec 04 13:34:20.035 INFO [stderr] | Dec 04 13:34:20.035 INFO [stderr] 53 | let window_size = window.get_inner_size(); Dec 04 13:34:20.035 INFO [stderr] | ^^^^^^^^^^^ help: consider using `_window_size` instead Dec 04 13:34:20.035 INFO [stderr] | Dec 04 13:34:20.035 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 04 13:34:20.035 INFO [stderr] Dec 04 13:34:20.035 INFO [stderr] warning: unused variable: `shader_program` Dec 04 13:34:20.035 INFO [stderr] --> src/main.rs:67:13 Dec 04 13:34:20.035 INFO [stderr] | Dec 04 13:34:20.035 INFO [stderr] 67 | let mut shader_program = 0; Dec 04 13:34:20.035 INFO [stderr] | ^^^^^^^^^^^^^^ help: consider using `_shader_program` instead Dec 04 13:34:20.035 INFO [stderr] Dec 04 13:34:20.047 INFO [stderr] warning: variable does not need to be mutable Dec 04 13:34:20.047 INFO [stderr] --> src/main.rs:67:9 Dec 04 13:34:20.047 INFO [stderr] | Dec 04 13:34:20.047 INFO [stderr] 67 | let mut shader_program = 0; Dec 04 13:34:20.047 INFO [stderr] | ----^^^^^^^^^^^^^^ Dec 04 13:34:20.047 INFO [stderr] | | Dec 04 13:34:20.047 INFO [stderr] | help: remove this `mut` Dec 04 13:34:20.047 INFO [stderr] | Dec 04 13:34:20.047 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 04 13:34:20.047 INFO [stderr] Dec 04 13:34:20.055 INFO [stderr] warning: struct is never constructed: `Line` Dec 04 13:34:20.055 INFO [stderr] --> src/linear_regression.rs:1:1 Dec 04 13:34:20.055 INFO [stderr] | Dec 04 13:34:20.055 INFO [stderr] 1 | pub struct Line { Dec 04 13:34:20.055 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 04 13:34:20.055 INFO [stderr] | Dec 04 13:34:20.055 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 04 13:34:20.055 INFO [stderr] Dec 04 13:34:20.055 INFO [stderr] warning: struct is never constructed: `Point` Dec 04 13:34:20.055 INFO [stderr] --> src/linear_regression.rs:6:1 Dec 04 13:34:20.055 INFO [stderr] | Dec 04 13:34:20.055 INFO [stderr] 6 | pub struct Point { Dec 04 13:34:20.055 INFO [stderr] | ^^^^^^^^^^^^^^^^ Dec 04 13:34:20.055 INFO [stderr] Dec 04 13:34:20.055 INFO [stderr] warning: method is never used: `learning_rate` Dec 04 13:34:20.055 INFO [stderr] --> src/linear_regression.rs:33:5 Dec 04 13:34:20.055 INFO [stderr] | Dec 04 13:34:20.055 INFO [stderr] 33 | pub fn learning_rate(mut self, rate: f32) -> LinearRegression<'a> { Dec 04 13:34:20.055 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:20.055 INFO [stderr] Dec 04 13:34:20.055 INFO [stderr] warning: method is never used: `unbind` Dec 04 13:34:20.055 INFO [stderr] --> src/program.rs:100:5 Dec 04 13:34:20.055 INFO [stderr] | Dec 04 13:34:20.055 INFO [stderr] 100 | pub fn unbind(&self) { Dec 04 13:34:20.055 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:20.055 INFO [stderr] Dec 04 13:34:20.079 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 04 13:34:20.079 INFO [stderr] --> src/main.rs:70:9 Dec 04 13:34:20.079 INFO [stderr] | Dec 04 13:34:20.079 INFO [stderr] 70 | window.make_current(); Dec 04 13:34:20.079 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:20.079 INFO [stderr] | Dec 04 13:34:20.079 INFO [stderr] = note: #[warn(unused_must_use)] on by default Dec 04 13:34:20.079 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 04 13:34:20.079 INFO [stderr] Dec 04 13:34:20.087 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 04 13:34:20.087 INFO [stderr] --> src/main.rs:154:9 Dec 04 13:34:20.087 INFO [stderr] | Dec 04 13:34:20.087 INFO [stderr] 154 | window.swap_buffers(); Dec 04 13:34:20.087 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 04 13:34:20.087 INFO [stderr] | Dec 04 13:34:20.087 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 04 13:34:20.087 INFO [stderr] Dec 04 13:34:20.116 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 34.31s Dec 04 13:34:20.163 INFO [stderr] su: No module specific data is present Dec 04 13:34:21.257 INFO running `"docker" "inspect" "18ea51be9ef5719fa21fbc5add0fede618cfc4a00212e7e05b6e5015dd6a066b"` Dec 04 13:34:21.579 INFO running `"docker" "rm" "-f" "18ea51be9ef5719fa21fbc5add0fede618cfc4a00212e7e05b6e5015dd6a066b"` Dec 04 13:34:21.923 INFO [stdout] 18ea51be9ef5719fa21fbc5add0fede618cfc4a00212e7e05b6e5015dd6a066b