Dec 11 13:03:38.591 INFO checking mwalczyk/spectrum_learn_rs against master#3a75e80557a103497cffbcab395a2f37061a77ea for pr-56677 Dec 11 13:03:38.591 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56677/worker-5/master#3a75e80557a103497cffbcab395a2f37061a77ea:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-5/pr-56677/master#3a75e80557a103497cffbcab395a2f37061a77ea:/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 +3a75e80557a103497cffbcab395a2f37061a77ea-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 11 13:03:38.995 INFO [stdout] 1b2371f8bbf80e92492d039a9bcfc423eef67f8c82718b8639a6674e0b590af4 Dec 11 13:03:38.995 INFO running `"docker" "start" "-a" "1b2371f8bbf80e92492d039a9bcfc423eef67f8c82718b8639a6674e0b590af4"` Dec 11 13:03:40.175 INFO [stderr] usermod: no changes Dec 11 13:03:40.359 INFO [stderr] Compiling serde v0.9.12 Dec 11 13:03:40.359 INFO [stderr] Checking lazy_static v0.2.5 Dec 11 13:03:40.359 INFO [stderr] Compiling phf_generator v0.7.21 Dec 11 13:03:40.359 INFO [stderr] Checking csv v0.15.0 Dec 11 13:03:40.800 INFO [stderr] Checking x11-dl v2.12.0 Dec 11 13:03:40.800 INFO [stderr] Checking shared_library v0.1.5 Dec 11 13:03:41.309 INFO [stderr] Compiling phf_codegen v0.7.21 Dec 11 13:03:42.400 INFO [stderr] Checking osmesa-sys v0.1.2 Dec 11 13:03:43.224 INFO [stderr] Compiling target_build_utils v0.3.0 Dec 11 13:03:59.457 INFO [stderr] Compiling serde_json v0.9.9 Dec 11 13:04:06.220 INFO [stderr] Compiling libloading v0.3.4 Dec 11 13:04:08.780 INFO [stderr] Checking dlib v0.3.1 Dec 11 13:04:09.156 INFO [stderr] Checking wayland-sys v0.7.8 Dec 11 13:04:09.592 INFO [stderr] Checking wayland-client v0.7.8 Dec 11 13:04:11.216 INFO [stderr] Checking wayland-window v0.4.4 Dec 11 13:04:11.216 INFO [stderr] Checking wayland-kbd v0.6.3 Dec 11 13:04:12.910 INFO [stderr] Checking winit v0.5.11 Dec 11 13:04:14.608 INFO [stderr] Checking glutin v0.7.4 Dec 11 13:04:16.125 INFO [stderr] Checking spectrum_learn_rs v0.1.0 (/source) Dec 11 13:04:17.124 INFO [stderr] warning: unused imports: `GLboolean`, `GLfloat`, `GLsizeiptr` Dec 11 13:04:17.124 INFO [stderr] --> src/program.rs:3:17 Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] 3 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 11 13:04:17.124 INFO [stderr] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 11 13:04:17.124 INFO [stderr] Dec 11 13:04:17.124 INFO [stderr] warning: unused import: `std::mem` Dec 11 13:04:17.124 INFO [stderr] --> src/program.rs:4:5 Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] 4 | use std::mem; Dec 11 13:04:17.124 INFO [stderr] | ^^^^^^^^ Dec 11 13:04:17.124 INFO [stderr] Dec 11 13:04:17.124 INFO [stderr] warning: unused import: `std::error::Error` Dec 11 13:04:17.124 INFO [stderr] --> src/program.rs:9:5 Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] 9 | use std::error::Error; Dec 11 13:04:17.124 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.124 INFO [stderr] Dec 11 13:04:17.124 INFO [stderr] warning: unused imports: `GLboolean`, `GLchar`, `GLenum`, `GLint`, `GLuint` Dec 11 13:04:17.124 INFO [stderr] --> src/main.rs:11:26 Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] 11 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 11 13:04:17.124 INFO [stderr] | ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^^^^ Dec 11 13:04:17.124 INFO [stderr] Dec 11 13:04:17.124 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.124 INFO [stderr] --> src/main.rs:49:5 Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] 49 | /// Setup the window Dec 11 13:04:17.124 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.124 INFO [stderr] | Dec 11 13:04:17.124 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 11 13:04:17.128 INFO [stderr] Dec 11 13:04:17.128 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.128 INFO [stderr] --> src/main.rs:80:9 Dec 11 13:04:17.128 INFO [stderr] | Dec 11 13:04:17.128 INFO [stderr] 80 | /// Create a VBO and VAO for rendering the scatter plot Dec 11 13:04:17.128 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.128 INFO [stderr] Dec 11 13:04:17.128 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.128 INFO [stderr] --> src/main.rs:98:9 Dec 11 13:04:17.128 INFO [stderr] | Dec 11 13:04:17.128 INFO [stderr] 98 | /// Create a VBO and VAO for rendering the best-fit line Dec 11 13:04:17.128 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.128 INFO [stderr] Dec 11 13:04:17.128 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.128 INFO [stderr] --> src/main.rs:116:9 Dec 11 13:04:17.128 INFO [stderr] | Dec 11 13:04:17.128 INFO [stderr] 116 | /// Bind the shader program that will be used to draw the Dec 11 13:04:17.128 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.128 INFO [stderr] Dec 11 13:04:17.308 INFO [stderr] warning: unused variable: `window_size` Dec 11 13:04:17.309 INFO [stderr] --> src/main.rs:53:9 Dec 11 13:04:17.309 INFO [stderr] | Dec 11 13:04:17.309 INFO [stderr] 53 | let window_size = window.get_inner_size(); Dec 11 13:04:17.309 INFO [stderr] | ^^^^^^^^^^^ help: consider using `_window_size` instead Dec 11 13:04:17.309 INFO [stderr] | Dec 11 13:04:17.309 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 11 13:04:17.309 INFO [stderr] Dec 11 13:04:17.309 INFO [stderr] warning: unused variable: `shader_program` Dec 11 13:04:17.309 INFO [stderr] --> src/main.rs:67:13 Dec 11 13:04:17.309 INFO [stderr] | Dec 11 13:04:17.309 INFO [stderr] 67 | let mut shader_program = 0; Dec 11 13:04:17.309 INFO [stderr] | ^^^^^^^^^^^^^^ help: consider using `_shader_program` instead Dec 11 13:04:17.309 INFO [stderr] Dec 11 13:04:17.324 INFO [stderr] warning: variable does not need to be mutable Dec 11 13:04:17.325 INFO [stderr] --> src/main.rs:67:9 Dec 11 13:04:17.325 INFO [stderr] | Dec 11 13:04:17.325 INFO [stderr] 67 | let mut shader_program = 0; Dec 11 13:04:17.325 INFO [stderr] | ----^^^^^^^^^^^^^^ Dec 11 13:04:17.328 INFO [stderr] | | Dec 11 13:04:17.328 INFO [stderr] | help: remove this `mut` Dec 11 13:04:17.328 INFO [stderr] | Dec 11 13:04:17.328 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 11 13:04:17.328 INFO [stderr] Dec 11 13:04:17.334 INFO [stderr] warning: struct is never constructed: `Line` Dec 11 13:04:17.334 INFO [stderr] --> src/linear_regression.rs:1:1 Dec 11 13:04:17.335 INFO [stderr] | Dec 11 13:04:17.335 INFO [stderr] 1 | pub struct Line { Dec 11 13:04:17.335 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 11 13:04:17.335 INFO [stderr] | Dec 11 13:04:17.336 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 11 13:04:17.336 INFO [stderr] Dec 11 13:04:17.336 INFO [stderr] warning: struct is never constructed: `Point` Dec 11 13:04:17.337 INFO [stderr] --> src/linear_regression.rs:6:1 Dec 11 13:04:17.337 INFO [stderr] | Dec 11 13:04:17.337 INFO [stderr] 6 | pub struct Point { Dec 11 13:04:17.337 INFO [stderr] | ^^^^^^^^^^^^^^^^ Dec 11 13:04:17.338 INFO [stderr] Dec 11 13:04:17.338 INFO [stderr] warning: method is never used: `learning_rate` Dec 11 13:04:17.338 INFO [stderr] --> src/linear_regression.rs:33:5 Dec 11 13:04:17.338 INFO [stderr] | Dec 11 13:04:17.339 INFO [stderr] 33 | pub fn learning_rate(mut self, rate: f32) -> LinearRegression<'a> { Dec 11 13:04:17.339 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.339 INFO [stderr] Dec 11 13:04:17.340 INFO [stderr] warning: method is never used: `unbind` Dec 11 13:04:17.340 INFO [stderr] --> src/program.rs:100:5 Dec 11 13:04:17.344 INFO [stderr] | Dec 11 13:04:17.344 INFO [stderr] 100 | pub fn unbind(&self) { Dec 11 13:04:17.344 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.344 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: unused imports: `GLboolean`, `GLfloat`, `GLsizeiptr` Dec 11 13:04:17.345 INFO [stderr] --> src/program.rs:3:17 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 3 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: unused import: `std::mem` Dec 11 13:04:17.345 INFO [stderr] --> src/program.rs:4:5 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 4 | use std::mem; Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: unused import: `std::error::Error` Dec 11 13:04:17.345 INFO [stderr] --> src/program.rs:9:5 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 9 | use std::error::Error; Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: unused imports: `GLboolean`, `GLchar`, `GLenum`, `GLint`, `GLuint` Dec 11 13:04:17.345 INFO [stderr] --> src/main.rs:11:26 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 11 | use gl::types::{GLfloat, GLenum, GLuint, GLint, GLchar, GLsizeiptr, GLboolean}; Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^ ^^^^^^ ^^^^^ ^^^^^^ ^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.345 INFO [stderr] --> src/main.rs:49:5 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 49 | /// Setup the window Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.345 INFO [stderr] --> src/main.rs:80:9 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 80 | /// Create a VBO and VAO for rendering the scatter plot Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.345 INFO [stderr] --> src/main.rs:98:9 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 98 | /// Create a VBO and VAO for rendering the best-fit line Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.345 INFO [stderr] warning: doc comment not used by rustdoc Dec 11 13:04:17.345 INFO [stderr] --> src/main.rs:116:9 Dec 11 13:04:17.345 INFO [stderr] | Dec 11 13:04:17.345 INFO [stderr] 116 | /// Bind the shader program that will be used to draw the Dec 11 13:04:17.345 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.345 INFO [stderr] Dec 11 13:04:17.351 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 11 13:04:17.351 INFO [stderr] --> src/main.rs:70:9 Dec 11 13:04:17.351 INFO [stderr] | Dec 11 13:04:17.351 INFO [stderr] 70 | window.make_current(); Dec 11 13:04:17.351 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.351 INFO [stderr] | Dec 11 13:04:17.351 INFO [stderr] = note: #[warn(unused_must_use)] on by default Dec 11 13:04:17.351 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 11 13:04:17.351 INFO [stderr] Dec 11 13:04:17.352 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 11 13:04:17.352 INFO [stderr] --> src/main.rs:154:9 Dec 11 13:04:17.352 INFO [stderr] | Dec 11 13:04:17.352 INFO [stderr] 154 | window.swap_buffers(); Dec 11 13:04:17.352 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.352 INFO [stderr] | Dec 11 13:04:17.352 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 11 13:04:17.352 INFO [stderr] Dec 11 13:04:17.504 INFO [stderr] warning: unused variable: `window_size` Dec 11 13:04:17.504 INFO [stderr] --> src/main.rs:53:9 Dec 11 13:04:17.504 INFO [stderr] | Dec 11 13:04:17.504 INFO [stderr] 53 | let window_size = window.get_inner_size(); Dec 11 13:04:17.504 INFO [stderr] | ^^^^^^^^^^^ help: consider using `_window_size` instead Dec 11 13:04:17.504 INFO [stderr] | Dec 11 13:04:17.504 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 11 13:04:17.504 INFO [stderr] Dec 11 13:04:17.504 INFO [stderr] warning: unused variable: `shader_program` Dec 11 13:04:17.504 INFO [stderr] --> src/main.rs:67:13 Dec 11 13:04:17.504 INFO [stderr] | Dec 11 13:04:17.504 INFO [stderr] 67 | let mut shader_program = 0; Dec 11 13:04:17.504 INFO [stderr] | ^^^^^^^^^^^^^^ help: consider using `_shader_program` instead Dec 11 13:04:17.504 INFO [stderr] Dec 11 13:04:17.512 INFO [stderr] warning: variable does not need to be mutable Dec 11 13:04:17.512 INFO [stderr] --> src/main.rs:67:9 Dec 11 13:04:17.512 INFO [stderr] | Dec 11 13:04:17.512 INFO [stderr] 67 | let mut shader_program = 0; Dec 11 13:04:17.512 INFO [stderr] | ----^^^^^^^^^^^^^^ Dec 11 13:04:17.512 INFO [stderr] | | Dec 11 13:04:17.512 INFO [stderr] | help: remove this `mut` Dec 11 13:04:17.512 INFO [stderr] | Dec 11 13:04:17.512 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 11 13:04:17.512 INFO [stderr] Dec 11 13:04:17.520 INFO [stderr] warning: struct is never constructed: `Line` Dec 11 13:04:17.520 INFO [stderr] --> src/linear_regression.rs:1:1 Dec 11 13:04:17.520 INFO [stderr] | Dec 11 13:04:17.520 INFO [stderr] 1 | pub struct Line { Dec 11 13:04:17.520 INFO [stderr] | ^^^^^^^^^^^^^^^ Dec 11 13:04:17.520 INFO [stderr] | Dec 11 13:04:17.520 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 11 13:04:17.520 INFO [stderr] Dec 11 13:04:17.520 INFO [stderr] warning: struct is never constructed: `Point` Dec 11 13:04:17.520 INFO [stderr] --> src/linear_regression.rs:6:1 Dec 11 13:04:17.520 INFO [stderr] | Dec 11 13:04:17.520 INFO [stderr] 6 | pub struct Point { Dec 11 13:04:17.520 INFO [stderr] | ^^^^^^^^^^^^^^^^ Dec 11 13:04:17.520 INFO [stderr] Dec 11 13:04:17.520 INFO [stderr] warning: method is never used: `learning_rate` Dec 11 13:04:17.520 INFO [stderr] --> src/linear_regression.rs:33:5 Dec 11 13:04:17.520 INFO [stderr] | Dec 11 13:04:17.520 INFO [stderr] 33 | pub fn learning_rate(mut self, rate: f32) -> LinearRegression<'a> { Dec 11 13:04:17.520 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.520 INFO [stderr] Dec 11 13:04:17.520 INFO [stderr] warning: method is never used: `unbind` Dec 11 13:04:17.520 INFO [stderr] --> src/program.rs:100:5 Dec 11 13:04:17.521 INFO [stderr] | Dec 11 13:04:17.521 INFO [stderr] 100 | pub fn unbind(&self) { Dec 11 13:04:17.521 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.521 INFO [stderr] Dec 11 13:04:17.540 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 11 13:04:17.540 INFO [stderr] --> src/main.rs:70:9 Dec 11 13:04:17.540 INFO [stderr] | Dec 11 13:04:17.540 INFO [stderr] 70 | window.make_current(); Dec 11 13:04:17.540 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.540 INFO [stderr] | Dec 11 13:04:17.540 INFO [stderr] = note: #[warn(unused_must_use)] on by default Dec 11 13:04:17.540 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 11 13:04:17.540 INFO [stderr] Dec 11 13:04:17.540 INFO [stderr] warning: unused `std::result::Result` that must be used Dec 11 13:04:17.540 INFO [stderr] --> src/main.rs:154:9 Dec 11 13:04:17.540 INFO [stderr] | Dec 11 13:04:17.540 INFO [stderr] 154 | window.swap_buffers(); Dec 11 13:04:17.540 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 11 13:04:17.540 INFO [stderr] | Dec 11 13:04:17.540 INFO [stderr] = note: this `Result` may be an `Err` variant, which should be handled Dec 11 13:04:17.540 INFO [stderr] Dec 11 13:04:17.577 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 37.38s Dec 11 13:04:17.592 INFO [stderr] su: No module specific data is present Dec 11 13:04:18.160 INFO running `"docker" "inspect" "1b2371f8bbf80e92492d039a9bcfc423eef67f8c82718b8639a6674e0b590af4"` Dec 11 13:04:18.482 INFO running `"docker" "rm" "-f" "1b2371f8bbf80e92492d039a9bcfc423eef67f8c82718b8639a6674e0b590af4"` Dec 11 13:04:18.816 INFO [stdout] 1b2371f8bbf80e92492d039a9bcfc423eef67f8c82718b8639a6674e0b590af4