[INFO] fetching crate tickv 1.0.0... [INFO] checking tickv-1.0.0 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate tickv 1.0.0 into /workspace/builds/worker-6-tc1/source [INFO] validating manifest of crates.io crate tickv 1.0.0 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate tickv 1.0.0 [INFO] finished tweaking crates.io crate tickv 1.0.0 [INFO] tweaked toml for crates.io crate tickv 1.0.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a99cd5582c0fa8915a678427c3398425a83e1d3b7376bc5dac303945544c160 [INFO] running `Command { std: "docker" "start" "-a" "8a99cd5582c0fa8915a678427c3398425a83e1d3b7376bc5dac303945544c160", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a99cd5582c0fa8915a678427c3398425a83e1d3b7376bc5dac303945544c160", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a99cd5582c0fa8915a678427c3398425a83e1d3b7376bc5dac303945544c160", kill_on_drop: false }` [INFO] [stdout] 8a99cd5582c0fa8915a678427c3398425a83e1d3b7376bc5dac303945544c160 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 458e8a96ac5a4d683e8f45d1b3fb85ca338f5ef6ba600f0ade637030ca6bc912 [INFO] running `Command { std: "docker" "start" "-a" "458e8a96ac5a4d683e8f45d1b3fb85ca338f5ef6ba600f0ade637030ca6bc912", kill_on_drop: false }` [INFO] [stderr] Checking tickv v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:562:73 [INFO] [stdout] | [INFO] [stdout] 562 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] = note: `#[warn(static_mut_refs)]` on by default [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 562 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:573:73 [INFO] [stdout] | [INFO] [stdout] 573 | let ret = unsafe { tickv.append_key(get_hashed_key(b"TWO"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 573 | let ret = unsafe { tickv.append_key(get_hashed_key(b"TWO"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:605:73 [INFO] [stdout] | [INFO] [stdout] 605 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 605 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:618:55 [INFO] [stdout] | [INFO] [stdout] 618 | tickv.get_key(get_hashed_key(b"ONE"), &mut BUF).unwrap(); [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 618 | tickv.get_key(get_hashed_key(b"ONE"), addr_of_mut!(BUF)).unwrap(); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:622:70 [INFO] [stdout] | [INFO] [stdout] 622 | let ret = unsafe { tickv.get_key(get_hashed_key(b"TWO"), &mut BUF) }; [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 622 | let ret = unsafe { tickv.get_key(get_hashed_key(b"TWO"), addr_of_mut!(BUF)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:634:73 [INFO] [stdout] | [INFO] [stdout] 634 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 634 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:649:73 [INFO] [stdout] | [INFO] [stdout] 649 | let ret = unsafe { tickv.append_key(get_hashed_key(b"TWO"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 649 | let ret = unsafe { tickv.append_key(get_hashed_key(b"TWO"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:661:70 [INFO] [stdout] | [INFO] [stdout] 661 | let ret = unsafe { tickv.get_key(get_hashed_key(b"ONE"), &mut BUF) }; [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 661 | let ret = unsafe { tickv.get_key(get_hashed_key(b"ONE"), addr_of_mut!(BUF)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:673:70 [INFO] [stdout] | [INFO] [stdout] 673 | let ret = unsafe { tickv.get_key(get_hashed_key(b"TWO"), &mut BUF) }; [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 673 | let ret = unsafe { tickv.get_key(get_hashed_key(b"TWO"), addr_of_mut!(BUF)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:685:72 [INFO] [stdout] | [INFO] [stdout] 685 | let ret = unsafe { tickv.get_key(get_hashed_key(b"THREE"), &mut BUF) }; [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 685 | let ret = unsafe { tickv.get_key(get_hashed_key(b"THREE"), addr_of_mut!(BUF)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:696:63 [INFO] [stdout] | [INFO] [stdout] 696 | match tickv.get_key(get_hashed_key(b"THREE"), &mut BUF) { [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 696 | match tickv.get_key(get_hashed_key(b"THREE"), addr_of_mut!(BUF)) { [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:725:73 [INFO] [stdout] | [INFO] [stdout] 725 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 725 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:738:55 [INFO] [stdout] | [INFO] [stdout] 738 | tickv.get_key(get_hashed_key(b"ONE"), &mut BUF).unwrap(); [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 738 | tickv.get_key(get_hashed_key(b"ONE"), addr_of_mut!(BUF)).unwrap(); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:746:61 [INFO] [stdout] | [INFO] [stdout] 746 | match tickv.get_key(get_hashed_key(b"ONE"), &mut BUF) { [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 746 | match tickv.get_key(get_hashed_key(b"ONE"), addr_of_mut!(BUF)) { [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:791:73 [INFO] [stdout] | [INFO] [stdout] 791 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), &mut VALUE) }; [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 791 | let ret = unsafe { tickv.append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:860:70 [INFO] [stdout] | [INFO] [stdout] 860 | let ret = unsafe { tickv.get_key(get_hashed_key(b"ONE"), &mut BUF) }; [INFO] [stdout] | ^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 860 | let ret = unsafe { tickv.get_key(get_hashed_key(b"ONE"), addr_of_mut!(BUF)) }; [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/async_ops.rs:874:57 [INFO] [stdout] | [INFO] [stdout] 874 | .append_key(get_hashed_key(b"ONE"), &mut VALUE) [INFO] [stdout] | ^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 874 | .append_key(get_hashed_key(b"ONE"), addr_of_mut!(VALUE)) [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 17 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.41s [INFO] running `Command { std: "docker" "inspect" "458e8a96ac5a4d683e8f45d1b3fb85ca338f5ef6ba600f0ade637030ca6bc912", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "458e8a96ac5a4d683e8f45d1b3fb85ca338f5ef6ba600f0ade637030ca6bc912", kill_on_drop: false }` [INFO] [stdout] 458e8a96ac5a4d683e8f45d1b3fb85ca338f5ef6ba600f0ade637030ca6bc912