[INFO] cloning repository https://github.com/paritytech/whisper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/paritytech/whisper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparitytech%2Fwhisper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparitytech%2Fwhisper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e68b28c0ff8cacfc160f8c5dbc8dc56182155c00
[INFO] checking paritytech/whisper against master#6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd for pr-153721
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fparitytech%2Fwhisper" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/paritytech/whisper
[INFO] finished tweaking git repo https://github.com/paritytech/whisper
[INFO] tweaked toml for git repo https://github.com/paritytech/whisper written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/paritytech/whisper on toolchain 6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/paritytech/whisper already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: cli/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `whisper-cli` (manifest) generated 1 warning
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `parity-whisper` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/paritytech/parity-ethereum.git`
[INFO] [stderr]     Updating git submodule `https://github.com/ethereum/tests.git`
[INFO] [stderr]     Updating git submodule `https://github.com/paritytech/wasm-tests`
[INFO] [stderr]     Updating git repository `https://github.com/paritytech/rust-secp256k1`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zeroize v0.9.2
[INFO] [stderr]   Downloaded tiny-keccak v1.5.0
[INFO] [stderr]   Downloaded zeroize_derive v0.9.0
[INFO] [stderr]   Downloaded slab v0.3.0
[INFO] [stderr]   Downloaded matches v0.1.8
[INFO] [stderr]   Downloaded xmltree v0.8.0
[INFO] [stderr]   Downloaded keccak-hash v0.2.0
[INFO] [stderr]   Downloaded httparse v1.3.4
[INFO] [stderr]   Downloaded parity-util-mem v0.1.0
[INFO] [stderr]   Downloaded jsonrpc-pubsub v12.0.0
[INFO] [stderr]   Downloaded want v0.2.0
[INFO] [stderr]   Downloaded syn v0.15.39
[INFO] [stderr]   Downloaded malloc_size_of_derive v0.1.0
[INFO] [stderr]   Downloaded env_logger v0.5.13
[INFO] [stderr]   Downloaded heapsize v0.4.2
[INFO] [stderr]   Downloaded parity-codec v3.5.4
[INFO] [stderr]   Downloaded jsonrpc-core v12.0.0
[INFO] [stderr]   Downloaded serde_json v1.0.40
[INFO] [stderr]   Downloaded uint v0.7.1
[INFO] [stderr]   Downloaded try-lock v0.2.2
[INFO] [stderr]   Downloaded indexmap v1.0.2
[INFO] [stderr]   Downloaded slab v0.2.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.7.1
[INFO] [stderr]   Downloaded ripemd160 v0.8.0
[INFO] [stderr]   Downloaded wincolor v1.0.1
[INFO] [stderr]   Downloaded parity-bytes v0.1.0
[INFO] [stderr]   Downloaded strsim v0.9.2
[INFO] [stderr]   Downloaded block-modes v0.3.3
[INFO] [stderr]   Downloaded stream-cipher v0.3.0
[INFO] [stderr]   Downloaded tokio-uds v0.2.5
[INFO] [stderr]   Downloaded futures v0.1.28
[INFO] [stderr]   Downloaded memzero v0.1.0
[INFO] [stderr]   Downloaded tokio-udp v0.1.3
[INFO] [stderr]   Downloaded tokio-tcp v0.1.3
[INFO] [stderr]   Downloaded parity-path v0.1.1
[INFO] [stderr]   Downloaded termcolor v1.0.5
[INFO] [stderr]   Downloaded attohttpc v0.4.1
[INFO] [stderr]   Downloaded docopt v1.1.0
[INFO] [stderr]   Downloaded humantime v1.2.0
[INFO] [stderr]   Downloaded parity-snappy v0.1.0
[INFO] [stderr]   Downloaded mio-uds v0.6.7
[INFO] [stderr]   Downloaded scrypt v0.2.0
[INFO] [stderr]   Downloaded ipnetwork v0.12.8
[INFO] [stderr]   Downloaded hex v0.2.0
[INFO] [stderr]   Downloaded utf8-ranges v1.0.3
[INFO] [stderr]   Downloaded impl-serde v0.2.0
[INFO] [stderr]   Downloaded impl-rlp v0.2.0
[INFO] [stderr]   Downloaded fixed-hash v0.3.2
[INFO] [stderr]   Downloaded subtle v2.1.0
[INFO] [stderr]   Downloaded untrusted v0.6.2
[INFO] [stderr]   Downloaded rustc-hex v1.0.0
[INFO] [stderr]   Downloaded block-padding v0.1.4
[INFO] [stderr]   Downloaded hmac v0.7.0
[INFO] [stderr]   Downloaded jsonrpc-server-utils v12.0.0
[INFO] [stderr]   Downloaded opaque-debug v0.2.2
[INFO] [stderr]   Downloaded ctr v0.3.2
[INFO] [stderr]   Downloaded ethereum-types v0.6.0
[INFO] [stderr]   Downloaded termion v1.5.3
[INFO] [stderr]   Downloaded unicode-bidi v0.3.4
[INFO] [stderr]   Downloaded tokio-buf v0.1.1
[INFO] [stderr]   Downloaded parity-crypto v0.4.0
[INFO] [stderr]   Downloaded http v0.1.17
[INFO] [stderr]   Downloaded unicode-normalization v0.1.8
[INFO] [stderr]   Downloaded impl-codec v0.2.0
[INFO] [stderr]   Downloaded block-cipher-trait v0.6.2
[INFO] [stderr]   Downloaded timer v0.2.0
[INFO] [stderr]   Downloaded futures-cpupool v0.1.8
[INFO] [stderr]   Downloaded elastic-array v0.10.2
[INFO] [stderr]   Downloaded memoffset v0.2.1
[INFO] [stderr]   Downloaded tokio-fs v0.1.6
[INFO] [stderr]   Downloaded h2 v0.1.25
[INFO] [stderr]   Downloaded igd v0.9.0
[INFO] [stderr]   Downloaded ethbloom v0.6.4
[INFO] [stderr]   Downloaded tokio-executor v0.1.8
[INFO] [stderr]   Downloaded tokio-current-thread v0.1.6
[INFO] [stderr]   Downloaded crossbeam-deque v0.6.3
[INFO] [stderr]   Downloaded quick-error v1.2.2
[INFO] [stderr]   Downloaded tokio-reactor v0.1.9
[INFO] [stderr]   Downloaded tokio-codec v0.1.1
[INFO] [stderr]   Downloaded derive_more v0.14.1
[INFO] [stderr]   Downloaded rustc-demangle v0.1.15
[INFO] [stderr]   Downloaded ordered-float v0.5.2
[INFO] [stderr]   Downloaded cmake v0.1.40
[INFO] [stderr]   Downloaded time v0.1.42
[INFO] [stderr]   Downloaded bitflags v0.9.1
[INFO] [stderr]   Downloaded rlp v0.4.0
[INFO] [stderr]   Downloaded typenum v1.10.0
[INFO] [stderr]   Downloaded arrayvec v0.4.10
[INFO] [stderr]   Downloaded toml v0.5.1
[INFO] [stderr]   Downloaded http-body v0.1.0
[INFO] [stderr]   Downloaded jsonrpc-derive v12.0.0
[INFO] [stderr]   Downloaded tokio-sync v0.1.6
[INFO] [stderr]   Downloaded unicase v2.4.0
[INFO] [stderr]   Downloaded serde_derive v1.0.94
[INFO] [stderr]   Downloaded tokio-io v0.1.12
[INFO] [stderr]   Downloaded tokio-timer v0.2.11
[INFO] [stderr]   Downloaded jsonrpc-http-server v12.0.0
[INFO] [stderr]   Downloaded tokio-threadpool v0.1.15
[INFO] [stderr]   Downloaded backtrace v0.3.32
[INFO] [stderr]   Downloaded parity-wordlist v1.3.0
[INFO] [stderr]   Downloaded globset v0.4.4
[INFO] [stderr]   Downloaded aes v0.3.2
[INFO] [stderr]   Downloaded serde v1.0.94
[INFO] [stderr]   Downloaded static_assertions v0.2.5
[INFO] [stderr]   Downloaded aes-ctr v0.3.0
[INFO] [stderr]   Downloaded cc v1.0.37
[INFO] [stderr]   Downloaded base64 v0.9.3
[INFO] [stderr]   Downloaded aes-soft v0.3.3
[INFO] [stderr]   Downloaded tokio v0.1.22
[INFO] [stderr]   Downloaded edit-distance v2.1.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.6.5
[INFO] [stderr]   Downloaded aesni v0.6.0
[INFO] [stderr]   Downloaded aho-corasick v0.7.4
[INFO] [stderr]   Downloaded safemem v0.3.0
[INFO] [stderr]   Downloaded hyper v0.12.31
[INFO] [stderr]   Downloaded chrono v0.4.7
[INFO] [stderr]   Downloaded regex v1.1.9
[INFO] [stderr]   Downloaded regex-syntax v0.6.8
[INFO] [stderr]   Downloaded bstr v0.2.1
[INFO] [stderr]   Downloaded backtrace-sys v0.1.30
[INFO] [stderr]   Downloaded parity-snappy-sys v0.1.2
[INFO] [stderr]   Downloaded ring v0.14.6
[INFO] [stderr]   Downloaded primitive-types v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b
[INFO] running `Command { std: "docker" "start" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `parity-whisper` (manifest) generated 1 warning
[INFO] [stderr] warning: cli/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `whisper-cli` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.58
[INFO] [stderr]    Compiling syn v0.15.39
[INFO] [stderr]    Compiling serde v1.0.94
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking futures v0.1.28
[INFO] [stderr]    Compiling cc v1.0.37
[INFO] [stderr]    Compiling typenum v1.10.0
[INFO] [stderr]    Compiling arrayvec v0.4.10
[INFO] [stderr]     Checking smallvec v0.6.10
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]    Compiling quote v0.6.12
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking crossbeam-utils v0.6.5
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking stable_deref_trait v1.1.1
[INFO] [stderr]     Checking owning_ref v0.4.0
[INFO] [stderr]    Compiling heapsize v0.4.2
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]     Checking rustc-hex v2.0.1
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]     Checking memoffset v0.2.1
[INFO] [stderr]     Checking opaque-debug v0.2.2
[INFO] [stderr]     Checking block-padding v0.1.4
[INFO] [stderr]     Checking static_assertions v0.2.5
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking tiny-keccak v1.5.0
[INFO] [stderr]     Checking lock_api v0.2.0
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking rlp v0.4.0
[INFO] [stderr]     Checking mio v0.6.19
[INFO] [stderr]     Checking uint v0.7.1
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking safemem v0.3.0
[INFO] [stderr]     Checking crossbeam-epoch v0.7.1
[INFO] [stderr]     Checking tokio-executor v0.1.8
[INFO] [stderr]     Checking tokio-sync v0.1.6
[INFO] [stderr]     Checking impl-rlp v0.2.0
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]    Compiling cmake v0.1.40
[INFO] [stderr]    Compiling regex v1.1.9
[INFO] [stderr]    Compiling eth-secp256k1 v0.5.7 (https://github.com/paritytech/rust-secp256k1#9791e79f)
[INFO] [stderr]     Checking generic-array v0.12.3
[INFO] [stderr]     Checking tokio-io v0.1.12
[INFO] [stderr]     Checking tokio-current-thread v0.1.6
[INFO] [stderr]     Checking tokio-timer v0.2.11
[INFO] [stderr]     Checking http v0.1.17
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking aho-corasick v0.7.4
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking regex-syntax v0.6.8
[INFO] [stderr]    Compiling parity-snappy-sys v0.1.2
[INFO] [stderr]     Checking memzero v0.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.7.1
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]     Checking utf8-ranges v1.0.3
[INFO] [stderr]     Checking subtle v2.1.0
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking parity-wordlist v1.3.0
[INFO] [stderr]     Checking block-cipher-trait v0.6.2
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking tokio-codec v0.1.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking crypto-mac v0.7.0
[INFO] [stderr]     Checking aes-soft v0.3.3
[INFO] [stderr]     Checking stream-cipher v0.3.0
[INFO] [stderr]     Checking block-modes v0.3.3
[INFO] [stderr]     Checking crossbeam-deque v0.6.3
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking hmac v0.7.0
[INFO] [stderr]     Checking ctr v0.3.2
[INFO] [stderr]     Checking sha2 v0.8.0
[INFO] [stderr]     Checking tokio-threadpool v0.1.15
[INFO] [stderr]     Checking ripemd160 v0.8.0
[INFO] [stderr]    Compiling clear_on_drop v0.2.3
[INFO] [stderr]     Checking unicode-normalization v0.1.8
[INFO] [stderr]     Checking semver-parser v0.7.0
[INFO] [stderr]     Checking rustc-hex v1.0.0
[INFO] [stderr]     Checking aes v0.3.2
[INFO] [stderr]     Checking aes-ctr v0.3.0
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking edit-distance v2.1.0
[INFO] [stderr]     Checking fixed-hash v0.3.2
[INFO] [stderr]     Checking pbkdf2 v0.3.0
[INFO] [stderr]    Compiling unicase v2.4.0
[INFO] [stderr]    Compiling backtrace-sys v0.1.30
[INFO] [stderr]    Compiling ring v0.14.6
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking ipnetwork v0.12.8
[INFO] [stderr]     Checking scrypt v0.2.0
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]     Checking tokio-fs v0.1.6
[INFO] [stderr]     Checking xml-rs v0.7.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling error-chain v0.12.1
[INFO] [stderr]     Checking string v0.2.1
[INFO] [stderr]     Checking tokio-buf v0.1.1
[INFO] [stderr]     Checking bstr v0.2.1
[INFO] [stderr]     Checking elastic-array v0.10.2
[INFO] [stderr]     Checking parity-crypto v0.4.0
[INFO] [stderr]     Checking spin v0.5.0
[INFO] [stderr]     Checking try-lock v0.2.2
[INFO] [stderr]     Checking indexmap v1.0.2
[INFO] [stderr]     Checking untrusted v0.6.2
[INFO] [stderr]     Checking want v0.2.0
[INFO] [stderr]     Checking timer v0.2.0
[INFO] [stderr]     Checking xmltree v0.8.0
[INFO] [stderr]     Checking ordered-float v0.5.2
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking hex v0.2.0
[INFO] [stderr]     Checking linked-hash-map v0.5.2
[INFO] [stderr]     Checking rustc-demangle v0.1.15
[INFO] [stderr]     Checking time-utils v0.1.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking bitflags v0.9.1
[INFO] [stderr]     Checking humantime v1.2.0
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking termcolor v1.0.5
[INFO] [stderr]     Checking strsim v0.9.2
[INFO] [stderr]     Checking slab v0.2.0
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking parity-path v0.1.1
[INFO] [stderr]     Checking parity-bytes v0.1.0
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking backtrace v0.3.32
[INFO] [stderr]     Checking panic_hook v0.1.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking h2 v0.1.25
[INFO] [stderr]     Checking http-body v0.1.0
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking attohttpc v0.4.1
[INFO] [stderr]     Checking igd v0.9.0
[INFO] [stderr]     Checking globset v0.4.4
[INFO] [stderr]     Checking env_logger v0.5.13
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.94
[INFO] [stderr]    Compiling derive_more v0.14.1
[INFO] [stderr]     Checking parity-snappy v0.1.0
[INFO] [stderr]    Compiling zeroize_derive v0.9.0
[INFO] [stderr]    Compiling malloc_size_of_derive v0.1.0
[INFO] [stderr]     Checking zeroize v0.9.2
[INFO] [stderr]     Checking impl-serde v0.2.0
[INFO] [stderr]     Checking parity-codec v3.5.4
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stderr]     Checking semver v0.9.0
[INFO] [stderr]     Checking docopt v1.1.0
[INFO] [stderr]     Checking ethbloom v0.6.4
[INFO] [stderr]    Compiling toml v0.5.1
[INFO] [stderr]     Checking impl-codec v0.2.0
[INFO] [stderr]     Checking primitive-types v0.3.0
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.5.0
[INFO] [stderr]    Compiling parking_lot v0.8.0
[INFO] [stderr]    Compiling hyper v0.12.31
[INFO] [stderr]     Checking jsonrpc-core v12.0.0
[INFO] [stderr]     Checking parking_lot v0.7.1
[INFO] [stderr]    Compiling proc-macro-crate v0.1.4
[INFO] [stderr]     Checking jsonrpc-pubsub v12.0.0
[INFO] [stderr]     Checking tokio-reactor v0.1.9
[INFO] [stderr]     Checking ethereum-types v0.6.0
[INFO] [stderr]     Checking keccak-hash v0.2.0
[INFO] [stderr]    Compiling jsonrpc-derive v12.0.0
[INFO] [stderr]     Checking tokio-udp v0.1.3
[INFO] [stderr]     Checking tokio-tcp v0.1.3
[INFO] [stderr]     Checking tokio-uds v0.2.5
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking ethkey v0.3.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking parity-util-mem v0.1.0
[INFO] [stderr]     Checking ethcore-io v1.12.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking jsonrpc-server-utils v12.0.0
[INFO] [stderr]     Checking ethcore-network v1.12.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking ethcore-network-devp2p v1.12.0 (https://github.com/paritytech/parity-ethereum.git#fe7bc545)
[INFO] [stderr]     Checking parity-whisper v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `time_checked_add`
[INFO] [stdout]   --> src/lib.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | #![cfg_attr(feature = "time_checked_add", feature(time_checked_add))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `time_checked_add` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `time_checked_add`
[INFO] [stdout]   --> src/lib.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[cfg(not(time_checked_add))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(time_checked_add)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(time_checked_add)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/lib.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `time_checked_add`
[INFO] [stdout]   --> src/message.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[cfg(not(time_checked_add))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(time_checked_add)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(time_checked_add)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ethereum_types::H256`
[INFO] [stdout]    --> src/message.rs:464:6
[INFO] [stdout]     |
[INFO] [stdout] 464 |     use ethereum_types::H256;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:389:28
[INFO] [stdout]     |
[INFO] [stdout] 389 |     fn disconnect_peer(&self, PeerId);
[INFO] [stdout]     |                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:391:25
[INFO] [stdout]     |
[INFO] [stdout] 391 |     fn disable_peer(&self, PeerId);
[INFO] [stdout]     |                            ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |     fn node_key(&self, PeerId) -> Option<NodeId>;
[INFO] [stdout]     |                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:395:29
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn protocol_version(&self, ProtocolId, PeerId) -> Option<u8>;
[INFO] [stdout]     |                                ^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: ProtocolId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:395:41
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn protocol_version(&self, ProtocolId, PeerId) -> Option<u8>;
[INFO] [stdout]     |                                            ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:17
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                            ^^ help: try naming the parameter or explicitly ignoring it: `_: u8`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:29
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                                ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |         0 ... 8 => Some(1),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |         0 ... 16 => Some(2),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |         0 ... 24 => Some(3),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:210:10
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Serialize, Clone)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Serialize)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn add_private_key(&self, types::Private) -> Result<types::Identity, Error>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Private`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn add_sym_key(&self, types::Symmetric) -> Result<types::Identity, Error>;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Symmetric`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn get_public(&self, types::Identity) -> Result<types::Public, Error>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn get_private(&self, types::Identity) -> Result<types::Private, Error>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:104:26
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn get_symmetric(&self, types::Identity) -> Result<types::Symmetric, Error>;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn remove_key(&self, types::Identity) -> Result<bool, Error>;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn post(&self, types::PostRequest) -> Result<bool, Error>;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::PostRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:119:23
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn new_filter(&self, types::FilterRequest) -> Result<types::Identity, Error>;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::FilterRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn poll_changes(&self, types::Identity) -> Result<Vec<types::FilterItem>, Error>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:127:26
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn delete_filter(&self, types::Identity) -> Result<bool, Error>;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:22
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Subscriber<types::FilterItem>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:69
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::FilterRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:143:24
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool, Error>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<Self::Metadata>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:143:48
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool, Error>;
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: SubscriptionId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rpc/filter.rs:51:29
[INFO] [stdout]    |
[INFO] [stdout] 51 |     tx: Mutex<mpsc::Sender<Box<Fn() + Send>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     tx: Mutex<mpsc::Sender<Box<dyn Fn() + Send>>>,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:689:28
[INFO] [stdout]     |
[INFO] [stdout] 689 |     fn initialize(&self, io: &NetworkContext) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 689 |     fn initialize(&self, io: &dyn NetworkContext) {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:695:22
[INFO] [stdout]     |
[INFO] [stdout] 695 |     fn read(&self, io: &NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 695 |     fn read(&self, io: &dyn NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:699:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn connected(&self, io: &NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn connected(&self, io: &dyn NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:704:31
[INFO] [stdout]     |
[INFO] [stdout] 704 |     fn disconnected(&self, _io: &NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 704 |     fn disconnected(&self, _io: &dyn NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:708:25
[INFO] [stdout]     |
[INFO] [stdout] 708 |     fn timeout(&self, io: &NetworkContext, timer: TimerToken) {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 708 |     fn timeout(&self, io: &dyn NetworkContext, timer: TimerToken) {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:722:29
[INFO] [stdout]     |
[INFO] [stdout] 722 |     fn initialize(&self, _io: &NetworkContext) { }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 722 |     fn initialize(&self, _io: &dyn NetworkContext) { }
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:724:23
[INFO] [stdout]     |
[INFO] [stdout] 724 |     fn read(&self, _io: &NetworkContext, _peer: &PeerId, _id: u8, _msg: &[u8]) { }
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 724 |     fn read(&self, _io: &dyn NetworkContext, _peer: &PeerId, _id: u8, _msg: &[u8]) { }
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:726:28
[INFO] [stdout]     |
[INFO] [stdout] 726 |     fn connected(&self, _io: &NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 726 |     fn connected(&self, _io: &dyn NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:728:31
[INFO] [stdout]     |
[INFO] [stdout] 728 |     fn disconnected(&self, _io: &NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 728 |     fn disconnected(&self, _io: &dyn NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:730:26
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn timeout(&self, _io: &NetworkContext, _timer: TimerToken) { }
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn timeout(&self, _io: &dyn NetworkContext, _timer: TimerToken) { }
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `time_checked_add`
[INFO] [stdout]   --> src/lib.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | #![cfg_attr(feature = "time_checked_add", feature(time_checked_add))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `time_checked_add` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `time_checked_add`
[INFO] [stdout]   --> src/lib.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[cfg(not(time_checked_add))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(time_checked_add)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(time_checked_add)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/lib.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `time_checked_add`
[INFO] [stdout]   --> src/message.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[cfg(not(time_checked_add))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(time_checked_add)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(time_checked_add)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:389:28
[INFO] [stdout]     |
[INFO] [stdout] 389 |     fn disconnect_peer(&self, PeerId);
[INFO] [stdout]     |                               ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout]     = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:391:25
[INFO] [stdout]     |
[INFO] [stdout] 391 |     fn disable_peer(&self, PeerId);
[INFO] [stdout]     |                            ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:393:21
[INFO] [stdout]     |
[INFO] [stdout] 393 |     fn node_key(&self, PeerId) -> Option<NodeId>;
[INFO] [stdout]     |                        ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:395:29
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn protocol_version(&self, ProtocolId, PeerId) -> Option<u8>;
[INFO] [stdout]     |                                ^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: ProtocolId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:395:41
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn protocol_version(&self, ProtocolId, PeerId) -> Option<u8>;
[INFO] [stdout]     |                                            ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:17
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                    ^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: PeerId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                            ^^ help: try naming the parameter or explicitly ignoring it: `_: u8`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/net/mod.rs:397:29
[INFO] [stdout]     |
[INFO] [stdout] 397 |     fn send(&self, PeerId, u8, Vec<u8>);
[INFO] [stdout]     |                                ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/rpc/payload.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | / bitflags! {
[INFO] [stdout] 46 | |     struct Flags: u8 {
[INFO] [stdout] 47 | |         const FLAG_PAD_LEN_HIGH = 0b10000000;
[INFO] [stdout] 48 | |         const FLAG_PAD_LEN_LOW  = 0b01000000;
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__impl_bitflags` which comes from the expansion of the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |         0 ... 8 => Some(1),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |         0 ... 16 => Some(2),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/rpc/payload.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |         0 ... 24 => Some(3),
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:210:10
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Serialize, Clone)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/rpc/types.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Serialize)]
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn add_private_key(&self, types::Private) -> Result<types::Identity, Error>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Private`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:92:24
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn add_sym_key(&self, types::Symmetric) -> Result<types::Identity, Error>;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Symmetric`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/rpc/mod.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn get_public(&self, types::Identity) -> Result<types::Public, Error>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn get_private(&self, types::Identity) -> Result<types::Private, Error>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:104:26
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn get_symmetric(&self, types::Identity) -> Result<types::Symmetric, Error>;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn remove_key(&self, types::Identity) -> Result<bool, Error>;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn post(&self, types::PostRequest) -> Result<bool, Error>;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::PostRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:119:23
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn new_filter(&self, types::FilterRequest) -> Result<types::Identity, Error>;
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::FilterRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |     fn poll_changes(&self, types::Identity) -> Result<Vec<types::FilterItem>, Error>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:127:26
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn delete_filter(&self, types::Identity) -> Result<bool, Error>;
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::Identity`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:22
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Self::Metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Subscriber<types::FilterItem>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:138:69
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: types::FilterRequest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:143:24
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool, Error>;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option<Self::Metadata>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]    --> src/rpc/mod.rs:143:48
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool, Error>;
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: SubscriptionId`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2018/trait-fn-parameters.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rpc/filter.rs:51:29
[INFO] [stdout]    |
[INFO] [stdout] 51 |     tx: Mutex<mpsc::Sender<Box<Fn() + Send>>>,
[INFO] [stdout]    |                                ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     tx: Mutex<mpsc::Sender<Box<dyn Fn() + Send>>>,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:689:28
[INFO] [stdout]     |
[INFO] [stdout] 689 |     fn initialize(&self, io: &NetworkContext) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 689 |     fn initialize(&self, io: &dyn NetworkContext) {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:695:22
[INFO] [stdout]     |
[INFO] [stdout] 695 |     fn read(&self, io: &NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 695 |     fn read(&self, io: &dyn NetworkContext, peer: &PeerId, packet_id: u8, data: &[u8]) {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:699:27
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn connected(&self, io: &NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 699 |     fn connected(&self, io: &dyn NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:704:31
[INFO] [stdout]     |
[INFO] [stdout] 704 |     fn disconnected(&self, _io: &NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 704 |     fn disconnected(&self, _io: &dyn NetworkContext, peer: &PeerId) {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:708:25
[INFO] [stdout]     |
[INFO] [stdout] 708 |     fn timeout(&self, io: &NetworkContext, timer: TimerToken) {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 708 |     fn timeout(&self, io: &dyn NetworkContext, timer: TimerToken) {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:722:29
[INFO] [stdout]     |
[INFO] [stdout] 722 |     fn initialize(&self, _io: &NetworkContext) { }
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 722 |     fn initialize(&self, _io: &dyn NetworkContext) { }
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:724:23
[INFO] [stdout]     |
[INFO] [stdout] 724 |     fn read(&self, _io: &NetworkContext, _peer: &PeerId, _id: u8, _msg: &[u8]) { }
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 724 |     fn read(&self, _io: &dyn NetworkContext, _peer: &PeerId, _id: u8, _msg: &[u8]) { }
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:726:28
[INFO] [stdout]     |
[INFO] [stdout] 726 |     fn connected(&self, _io: &NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 726 |     fn connected(&self, _io: &dyn NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:728:31
[INFO] [stdout]     |
[INFO] [stdout] 728 |     fn disconnected(&self, _io: &NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 728 |     fn disconnected(&self, _io: &dyn NetworkContext, _peer: &PeerId) { }
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/net/mod.rs:730:26
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn timeout(&self, _io: &NetworkContext, _timer: TimerToken) { }
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn timeout(&self, _io: &dyn NetworkContext, _timer: TimerToken) { }
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rpc/filter.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let (tx, rx) = mpsc::channel::<Box<Fn() + Send>>();
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let (tx, rx) = mpsc::channel::<Box<dyn Fn() + Send>>();
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rpc/filter.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let (tx, rx) = mpsc::channel::<Box<Fn() + Send>>();
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let (tx, rx) = mpsc::channel::<Box<dyn Fn() + Send>>();
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/net/mod.rs:294:10
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn iter(&self) -> ::slab::Iter<Message, usize> {
[INFO] [stdout]     |             ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn iter(&self) -> ::slab::Iter<'_, Message, usize> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/rpc/payload.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn decode(payload: &[u8]) -> Result<Decoded, &'static str> {
[INFO] [stdout]     |                        ^^^^^            ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn decode(payload: &[u8]) -> Result<Decoded<'_>, &'static str> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Receiver`
[INFO] [stdout] 149 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 150 | pub enum Receiver {
[INFO] [stdout]     |          -------- `Receiver` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PostRequest`
[INFO] [stdout] 157 | pub struct PostRequest {
[INFO] [stdout]     |            ----------- `PostRequest` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FilterRequest`
[INFO] [stdout] 193 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 194 | pub struct FilterRequest {
[INFO] [stdout]     |            ------------- `FilterRequest` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:210:10
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Serialize, Clone)]
[INFO] [stdout]     |          ^--------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FilterItem`
[INFO] [stdout] 211 | pub struct FilterItem {
[INFO] [stdout]     |            ---------- `FilterItem` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Serialize)]
[INFO] [stdout]     |          ^--------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeInfo`
[INFO] [stdout] 240 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 241 | pub struct NodeInfo {
[INFO] [stdout]     |            -------- `NodeInfo` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/net/mod.rs:294:10
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn iter(&self) -> ::slab::Iter<Message, usize> {
[INFO] [stdout]     |             ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn iter(&self) -> ::slab::Iter<'_, Message, usize> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/rpc/payload.rs:169:24
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn decode(payload: &[u8]) -> Result<Decoded, &'static str> {
[INFO] [stdout]     |                        ^^^^^            ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn decode(payload: &[u8]) -> Result<Decoded<'_>, &'static str> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Receiver`
[INFO] [stdout] 149 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 150 | pub enum Receiver {
[INFO] [stdout]     |          -------- `Receiver` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PostRequest`
[INFO] [stdout] 157 | pub struct PostRequest {
[INFO] [stdout]     |            ----------- `PostRequest` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Deserialize)]
[INFO] [stdout]     |          ^----------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Deserialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FilterRequest`
[INFO] [stdout] 193 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 194 | pub struct FilterRequest {
[INFO] [stdout]     |            ------------- `FilterRequest` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:210:10
[INFO] [stdout]     |
[INFO] [stdout] 210 | #[derive(Serialize, Clone)]
[INFO] [stdout]     |          ^--------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FilterItem`
[INFO] [stdout] 211 | pub struct FilterItem {
[INFO] [stdout]     |            ---------- `FilterItem` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/rpc/types.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Serialize)]
[INFO] [stdout]     |          ^--------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Serialize` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_NodeInfo`
[INFO] [stdout] 240 | #[serde(rename_all = "camelCase")]
[INFO] [stdout] 241 | pub struct NodeInfo {
[INFO] [stdout]     |            -------- `NodeInfo` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking jsonrpc-http-server v12.0.0
[INFO] [stderr]     Checking whisper-cli v0.1.0 (/opt/rustwide/workdir/cli)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> cli/src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `cargo-clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> cli/src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> cli/src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `cargo-clippy` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> cli/src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> cli/src/main.rs:122:63
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut dyn FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> cli/src/main.rs:122:70
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&dyn net::NetworkContext)) {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> cli/src/main.rs:122:63
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut dyn FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> cli/src/main.rs:122:70
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&net::NetworkContext)) {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn with_proto_context(&self, proto: net::ProtocolId, f: &mut FnMut(&dyn net::NetworkContext)) {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> cli/src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^----------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 87 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> cli/src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^----------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout] 87 | struct Args {
[INFO] [stdout]    |        ---- `Args` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.92s
[INFO] running `Command { std: "docker" "inspect" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b", kill_on_drop: false }`
[INFO] [stdout] 756283e21fd6a0c0d1048e8146fdd2566f9a904f36e9e6ef1732871f4fb8526b
