Upgrade bazelbuild-rules_rust to 0.49.3

This project was upgraded with external_updater.
Usage: tools/external_updater/updater.sh update external/bazelbuild-rules_rust
For more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md

Test: TreeHugger
Bug: 328465178
Bug: 360215829
Change-Id: I909b39f332808110b904a54e28e5ff081a296998
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index e44ec15..12c16cc 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -1,4 +1,5 @@
 ---
+minimum_bazel_version: &minimum_bazel_version "6.4.0"
 aspects_flags: &aspects_flags
   - "--config=rustfmt"
   - "--config=clippy"
@@ -10,9 +11,14 @@
   - "--//rust/toolchain/channel=nightly"
   - "--config=rustfmt"
   - "--config=clippy"
+bzlmod_flags: &bzlmod_flags
+  - "--lockfile_mode=error"
 single_rust_channel_targets: &single_rust_channel_targets
   - "--"
   - "//..."
+  # TODO: Remove this and replace `cargo_bootstrap_repository` with a
+  # http_archive for a release: https://github.com/cross-rs/cross/issues/1356
+  - "-//crate_universe/tools/cross_installer/..."
   # These tests are expected to fail as they require both a nightly and stable toolchain.
   - "-//test/unit/channel_transitions/..."
   - "-//test/unpretty/..."
@@ -57,7 +63,7 @@
       - //test:query_test_binary
   rbe_ubuntu2004:
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
@@ -120,7 +126,7 @@
     name: With Aspects
     platform: rbe_ubuntu2004
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     build_flags: *aspects_flags
     build_targets: *default_linux_targets
@@ -129,7 +135,7 @@
     name: RBE Rolling Bazel Version With Aspects
     platform: rbe_ubuntu2004
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
@@ -230,7 +236,7 @@
   ubuntu1804:
     name: "Min Bazel Version"
     # If updating the minimum bazel version, please also update /docs/index.md
-    bazel: "6.3.0"
+    bazel: *minimum_bazel_version
     platform: ubuntu1804
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
@@ -238,7 +244,7 @@
     post_shell_commands: *coverage_validation_post_shell_commands
   ubuntu1804_with_aspects:
     name: "Min Bazel Version With Aspects"
-    bazel: "6.3.0"
+    bazel: *minimum_bazel_version
     platform: ubuntu1804
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
@@ -362,21 +368,22 @@
       - "//..."
     test_targets:
       - "//..."
-  ubuntu2004_examples_clang_lld:
-    name: Examples with Clang and LLD
-    platform: ubuntu2004
-    shell_commands:
-      - "sudo apt -y update && sudo apt -y install lld"
-    working_directory: examples
-    build_flags:
-      - "--repo_env=CC=clang"
-      - "--linkopt=-fuse-ld=lld"
-      - "--config=rustfmt"
-      - "--config=clippy"
-    build_targets:
-      - "//..."
-    test_targets:
-      - "//..."
+  # TODO: https://github.com/bazelbuild/rules_rust/issues/2554
+  # ubuntu2004_examples_clang_lld:
+  #   name: Examples with Clang and LLD
+  #   platform: ubuntu2004
+  #   shell_commands:
+  #     - "sudo apt -y update && sudo apt -y install lld"
+  #   working_directory: examples
+  #   build_flags:
+  #     - "--repo_env=CC=clang"
+  #     - "--linkopt=-fuse-ld=lld"
+  #     - "--config=rustfmt"
+  #     - "--config=clippy"
+  #   build_targets:
+  #     - "//..."
+  #   test_targets:
+  #     - "//..."
   ubuntu2004_examples_rolling:
     name: "Examples with Rolling Bazel Version"
     platform: ubuntu2004
@@ -399,7 +406,7 @@
       # See https://github.com/bazelbuild/bazel/issues/9987
       - "-//ffi/rust_calling_c:matrix_dylib_test"
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     build_targets: *rbe_examples_targets
     test_targets: *rbe_examples_targets
@@ -456,7 +463,7 @@
     platform: rbe_ubuntu2004
     working_directory: examples/crate_universe
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     run_targets: *crate_universe_vendor_example_targets
     build_targets:
@@ -469,7 +476,7 @@
     platform: rbe_ubuntu2004
     working_directory: examples/crate_universe_unnamed
     shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
+      - sed -i 's/^# load("@bazel_ci_rules/load("@bazel_ci_rules/' WORKSPACE.bazel
       - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
     run_targets: *crate_universe_unnamed_vendor_example_targets
     build_targets:
@@ -582,11 +589,16 @@
     test_flags:
       - "--@rules_rust//rust/toolchain/channel=nightly"
       - "--@rules_rust//:no_std=alloc"
+  bzlmod_repo_mapping_runfiles:
+    name: bzlmod repo mapping test
+    platform: ubuntu2004
+    working_directory: test/bzlmod_repo_mapping/module_a
+    test_targets:
+      - "//..."
   android_examples_ubuntu2004:
     name: Android Examples
     platform: ubuntu2004
     working_directory: examples/android
-    bazel: "last_green"
     build_flags:
       - "--incompatible_enable_android_toolchain_resolution"
       - "--android_platforms=//:arm64-v8a"
@@ -602,7 +614,6 @@
     name: Android Examples
     platform: macos
     working_directory: examples/android
-    bazel: "last_green"
     build_flags:
       - "--incompatible_enable_android_toolchain_resolution"
       - "--android_platforms=//:arm64-v8a"
@@ -636,6 +647,14 @@
   #   working_directory: examples/zig_cross_compiling
   #   build_targets:
   #     - "//..."
+  musl_cross_compiling_macos_to_linux:
+    name: Musl cross compiling test from macOS to Linux
+    platform: macos
+    working_directory: examples/musl_cross_compiling
+    build_targets:
+      - "//..."
+    test_targets:
+      - "//..."
   nix_cross_compiling:
     name: Nix cross compiling test
     platform: ubuntu2204
@@ -649,10 +668,57 @@
       - "//:nix_cross_compiling"
     test_targets:
       - "//..."
+  bzlmod_all_crate_deps:
+    name: Cargo dependencies with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/all_crate_deps
+    build_targets:
+      - "//..."
+  bzlmod_all_deps_vendor:
+    name: Vendored dependencies with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/all_deps_vendor
+    run_targets:
+      - "//basic/3rdparty:crates_vendor"
+    build_targets:
+      - "//..."
+  bzlmod_compile_opt:
+    name: Compiler optimization with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/compile_opt
+    build_targets:
+      - "//..."
+  bzlmod_cross_compile:
+    name: Cross compilation with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/cross_compile
+    build_targets:
+      - "//:all"
+    test_targets:
+      - "//..."
+  bzlmod_ffi:
+    name: FFI with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/ffi
+    build_targets:
+      - "//..."
   ubuntu2004_bzlmod_bcr:
     name: bzlmod BCR presubmit
     platform: ubuntu2004
     working_directory: examples/bzlmod/hello_world
+    test_flags: *bzlmod_flags
+    run_targets:
+      - "//third-party:vendor"
+      - "@rules_rust//tools/rust_analyzer:gen_rust_project"
+    test_targets:
+      - "//..."
+  ubuntu2004_bzlmod_minimum_bazel_bcr:
+    name: bzlmod BCR presubmit minimal bazel
+    bazel: *minimum_bazel_version
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/hello_world
+    shell_commands:
+      - "rm MODULE.bazel.lock"
     run_targets:
       - "//third-party:vendor"
       - "@rules_rust//tools/rust_analyzer:gen_rust_project"
@@ -662,6 +728,7 @@
     name: bzlmod BCR presubmit
     platform: macos
     working_directory: examples/bzlmod/hello_world
+    test_flags: *bzlmod_flags
     run_targets:
       - "//third-party:vendor"
       - "@rules_rust//tools/rust_analyzer:gen_rust_project"
@@ -671,12 +738,46 @@
     name: bzlmod BCR presubmit
     platform: windows
     working_directory: examples/bzlmod/hello_world
+    test_flags: *bzlmod_flags
     run_targets:
       - "//third-party:vendor"
     build_targets:
       - "@rules_rust//tools/rust_analyzer:gen_rust_project"
     test_targets:
       - "//..."
+  bzlmod_no_cargo:
+    name: Cargo-less bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/hello_world_no_cargo
+    build_targets:
+      - "//..."
+  bzlmod_override_targets:
+    name: Override Targets bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/override_target
+    build_targets:
+      - "//..."
+    test_targets:
+      - "//..."
+  bzlmod_proto:
+    name: Proto and Prost with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/proto
+    build_targets:
+      - "//..."
+  bzlmod_proto:
+    name: Proto and Prost with prebuilt protoc with bzlmod
+    platform: ubuntu2004
+    working_directory: examples/bzlmod/proto_with_toolchain
+    build_targets:
+      - "//..."
+  compile_one_dependency:
+    name: --compile_one_dependency flag
+    platform: ubuntu2004
+    build_flags:
+      - "--compile_one_dependency"
+    build_targets:
+      - "tools/rust_analyzer/main.rs"
 
 buildifier:
   version: latest
diff --git a/.bazelignore b/.bazelignore
index 058f980..8aaeb6a 100644
--- a/.bazelignore
+++ b/.bazelignore
@@ -2,5 +2,7 @@
 docs
 examples
 crate_universe/private/bootstrap
+test/bzlmod_repo_mapping
 test/cc_common_link
 test/no_std
+.direnv
\ No newline at end of file
diff --git a/.bazelrc b/.bazelrc
index 4b35be4..2b404c6 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -28,6 +28,9 @@
 ## Unique configuration groups
 ###############################################################################
 
+# Enable use of the nightly toolchains.
+build:nightly --//rust/toolchain/channel=nightly
+
 # Enable rustfmt for all targets in the workspace
 build:rustfmt --aspects=//rust:defs.bzl%rustfmt_aspect
 build:rustfmt --output_groups=+rustfmt_checks
@@ -42,7 +45,7 @@
 
 # `unpretty` requires the nightly toolchain. See tracking issue:
 # https://github.com/rust-lang/rust/issues/43364
-build:unpretty --//rust/toolchain/channel=nightly
+build:unpretty --config=nightly
 
 ###############################################################################
 ## Incompatibility flags
@@ -54,6 +57,9 @@
 # https://github.com/bazelbuild/bazel/issues/12821
 build --nolegacy_external_runfiles
 
+# Required for cargo_build_script support before Bazel 7
+build --incompatible_merge_fixed_and_default_shell_env
+
 ###############################################################################
 ## Bzlmod
 ###############################################################################
@@ -62,6 +68,9 @@
 # https://github.com/bazelbuild/rules_rust/issues/2181
 common --noenable_bzlmod
 
+# Disable the bzlmod lockfile, so we don't accidentally commit MODULE.bazel.lock
+common --lockfile_mode=off
+
 ###############################################################################
 ## Custom user flags
 ##
diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml
index 7030f6e..81b8a77 100644
--- a/.bcr/presubmit.yml
+++ b/.bcr/presubmit.yml
@@ -9,6 +9,9 @@
       name: "Run test module"
       platform: ${{ platform }}
       bazel: ${{ bazel }}
+      # Remove the lockfile because we generate on Bazel 7, but test on Bazel 6 which may not be able to parse a future-generated lockfile.
+      shell_commands:
+        - "rm MODULE.bazel.lock"
       run_targets:
         - "//third-party:vendor"
         - "@rules_rust//tools/rust_analyzer:gen_rust_project"
@@ -25,6 +28,9 @@
       name: "Run test module"
       platform: windows
       bazel: ${{ bazel }}
+      # Remove the lockfile because we generate on Bazel 7, but test on Bazel 6 which may not be able to parse a future-generated lockfile.
+      shell_commands:
+        - "rm MODULE.bazel.lock"
       run_targets:
         - "//third-party:vendor"
       build_targets:
diff --git a/.github/release_notes.template b/.github/release_notes.template
index 747d2b2..1809d58 100644
--- a/.github/release_notes.template
+++ b/.github/release_notes.template
@@ -1,5 +1,13 @@
 # {version}
 
+## Bzlmod
+
+```python
+bazel_dep(name = "rules_rust", version = "{version}")
+```
+
+## WORKSPACE
+
 ```python
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 http_archive(
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index d36e7e4..08be4d6 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -46,25 +46,26 @@
     needs: validation
     runs-on: ${{ matrix.os }}
     strategy:
+      fail-fast: false
       matrix:
         # Create a job for each target triple
         include:
-          - os: macos-11
+          - os: macos-12
             env:
               TARGET: "aarch64-apple-darwin"
           - os: ubuntu-20.04
             env:
               TARGET: "aarch64-unknown-linux-gnu"
-          - os: windows-2019
+          - os: windows-2022
             env:
               TARGET: "aarch64-pc-windows-msvc"
-          - os: macos-11
+          - os: macos-12
             env:
               TARGET: "x86_64-apple-darwin"
           - os: ubuntu-20.04
             env:
               TARGET: "x86_64-pc-windows-gnu"
-          - os: windows-2019
+          - os: windows-2022
             env:
               TARGET: "x86_64-pc-windows-msvc"
           - os: ubuntu-20.04
@@ -81,15 +82,16 @@
           version="$(grep 'DEFAULT_RUST_VERSION =' ./rust/private/common.bzl | grep -o '[[:digit:].]\+')"
           rustup override set "${version}"
           rustup target add ${TARGET}
-          rustup update stable && rustup default stable
+          rustup update stable --no-self-update --force-non-host
+          rustup default stable
         env:
           TARGET: "${{ matrix.env.TARGET }}"
       - name: Setup macos build tooling
         run: |
-          sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer/
+          sudo xcode-select -s /Applications/Xcode_13.1.app/Contents/Developer/
           # Set SDK environment variables
-          echo "SDKROOT=$(xcrun -sdk macosx11.1 --show-sdk-path)" >> $GITHUB_ENV
-          echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx11.1 --show-sdk-platform-version)" >> $GITHUB_ENV
+          echo "SDKROOT=$(xcrun -sdk macosx12.0 --show-sdk-path)" >> $GITHUB_ENV
+          echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx12.0 --show-sdk-platform-version)" >> $GITHUB_ENV
         if: startswith(matrix.os, 'macos')
       - name: Setup Windows Bazelrc
         run: |
diff --git a/.gitignore b/.gitignore
index 08edefd..8038bb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,10 @@
 .vscode
 *.code-workspace
 
+# JetBrains
+.idea
+.idea/**
+
 # BazelCI
 bazelci.py
 
diff --git a/BUILD.bazel b/BUILD.bazel
index 3f71f8c..27a04d1 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -3,6 +3,7 @@
 load(
     "//rust:defs.bzl",
     "capture_clippy_output",
+    "clippy_flag",
     "clippy_flags",
     "error_format",
     "extra_exec_rustc_flag",
@@ -49,6 +50,12 @@
     visibility = ["//visibility:public"],
 )
 
+clippy_flag(
+    name = "clippy_flag",
+    build_setting_default = "",
+    visibility = ["//visibility:public"],
+)
+
 # This setting may be used to pass extra options to rustc from the command line
 # in non-exec configuration.
 # It applies across all targets whereas the rustc_flags option on targets applies only
@@ -103,7 +110,7 @@
 
 alias(
     name = "rustfmt",
-    actual = "//tools/rustfmt",
+    actual = "//tools/rustfmt:target_aware_rustfmt",
     visibility = ["//visibility:public"],
 )
 
diff --git a/METADATA b/METADATA
index 09fc8ba..700c760 100644
--- a/METADATA
+++ b/METADATA
@@ -1,15 +1,19 @@
+# This project was upgraded with external_updater.
+# Usage: tools/external_updater/updater.sh update external/bazelbuild-rules_rust
+# For more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md
+
 name: "bazelbuild-rules_rust"
 description: "Bazel rules for building Rust code."
 third_party {
-  url {
-    type: GIT
-    value: "https://github.com/bazelbuild/rules_rust"
-  }
-  version: "0.40.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
-    month: 3
-    day: 12
+    month: 8
+    day: 15
+  }
+  identifier {
+    type: "Git"
+    value: "https://github.com/bazelbuild/rules_rust"
+    version: "0.49.3"
   }
 }
diff --git a/MODULE.bazel b/MODULE.bazel
index 0265497..f5c1670 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -2,10 +2,14 @@
 
 module(
     name = "rules_rust",
-    version = "0.40.0",
+    version = "0.49.3",
 )
 
 bazel_dep(
+    name = "bazel_features",
+    version = "1.9.1",
+)
+bazel_dep(
     name = "bazel_skylib",
     version = "1.5.0",
 )
@@ -23,7 +27,7 @@
 )
 bazel_dep(
     name = "rules_proto",
-    version = "5.3.0-21.7",
+    version = "6.0.2",
 )
 bazel_dep(
     name = "apple_support",
@@ -35,24 +39,42 @@
     version = "21.7",
     repo_name = "com_google_protobuf",
 )
+bazel_dep(
+    name = "aspect_rules_js",
+    version = "1.39.0",
+)
+
+bazel_dep(
+    name = "bazel_ci_rules",
+    version = "1.0.0",
+    dev_dependency = True,
+)
+bazel_dep(
+    name = "rules_python",
+    version = "0.31.0",
+    dev_dependency = True,
+)
+bazel_dep(
+    name = "rules_testing",
+    version = "0.6.0",
+    dev_dependency = True,
+)
 
 internal_deps = use_extension("//rust/private:extensions.bzl", "i")
 use_repo(
     internal_deps,
-    "bazelci_rules",
     "cargo_bazel.buildifier-darwin-amd64",
     "cargo_bazel.buildifier-darwin-arm64",
     "cargo_bazel.buildifier-linux-amd64",
     "cargo_bazel.buildifier-linux-arm64",
     "cargo_bazel.buildifier-windows-amd64.exe",
-    "com_google_googleapis",
     "cui",
     "cui__anyhow-1.0.75",
     "cui__camino-1.1.6",
     "cui__cargo-lock-9.0.0",
     "cui__cargo-platform-0.1.4",
     "cui__cargo_metadata-0.18.1",
-    "cui__cargo_toml-0.17.1",
+    "cui__cargo_toml-0.19.2",
     "cui__cfg-expr-0.15.5",
     "cui__clap-4.3.11",
     "cui__crates-index-2.2.0",
@@ -61,6 +83,7 @@
     "cui__itertools-0.12.0",
     "cui__maplit-1.0.2",
     "cui__normpath-1.1.1",
+    "cui__once_cell-1.19.0",
     "cui__pathdiff-0.2.1",
     "cui__regex-1.10.2",
     "cui__semver-1.0.20",
@@ -76,6 +99,7 @@
     "cui__toml-0.8.10",
     "cui__tracing-0.1.40",
     "cui__tracing-subscriber-0.3.17",
+    "cui__url-2.5.2",
     "generated_inputs_in_external_repo",
     "libc",
     "llvm-raw",
@@ -102,6 +126,13 @@
     "rules_rust_prost__tokio-1.28.2",
     "rules_rust_prost__tokio-stream-0.1.14",
     "rules_rust_prost__tonic-0.9.2",
+    "rules_rust_proto__grpc-0.6.2",
+    "rules_rust_proto__grpc-compiler-0.6.2",
+    "rules_rust_proto__log-0.4.17",
+    "rules_rust_proto__protobuf-2.8.2",
+    "rules_rust_proto__protobuf-codegen-2.8.2",
+    "rules_rust_proto__tls-api-0.1.22",
+    "rules_rust_proto__tls-api-stub-0.1.22",
     "rules_rust_test_load_arbitrary_tool",
     "rules_rust_tinyjson",
     "rules_rust_toolchain_test_target_json",
@@ -120,9 +151,9 @@
     "rules_rust_wasm_bindgen__tempfile-3.6.0",
     "rules_rust_wasm_bindgen__ureq-2.8.0",
     "rules_rust_wasm_bindgen__walrus-0.20.3",
-    "rules_rust_wasm_bindgen__wasm-bindgen-0.2.91",
-    "rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.91",
-    "rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.91",
+    "rules_rust_wasm_bindgen__wasm-bindgen-0.2.92",
+    "rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.92",
+    "rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.92",
     "rules_rust_wasm_bindgen__wasmparser-0.102.0",
     "rules_rust_wasm_bindgen__wasmprinter-0.2.60",
     "rules_rust_wasm_bindgen_cli",
@@ -136,7 +167,20 @@
     "@rust_toolchains//:all",
 )
 
-use_repo(rust, "rust_host_tools")
+register_toolchains(
+    "//proto/protobuf:default-proto-toolchain",
+)
+
+register_toolchains(
+    "//proto/prost:default_prost_toolchain",
+)
+
+register_toolchains(
+    "//bindgen:default_bindgen_toolchain",
+)
+
+rust_host_tools = use_extension("//rust:extensions.bzl", "rust_host_tools")
+use_repo(rust_host_tools, "rust_host_tools")
 
 cargo_bazel_bootstrap = use_extension("//crate_universe/private/module_extensions:cargo_bazel_bootstrap.bzl", "cargo_bazel_bootstrap")
 use_repo(cargo_bazel_bootstrap, "cargo_bazel_bootstrap")
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index 8845e38..6a03df1 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -10,6 +10,10 @@
 
 crate_universe_dependencies(bootstrap = True)
 
+load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
+
+cross_installer_deps()
+
 # buildifier: disable=bzl-visibility
 load("@rules_rust//proto/prost/private:repositories.bzl", "rust_prost_dependencies", "rust_prost_register_toolchains")
 
@@ -66,7 +70,7 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
 http_archive(
-    name = "bazelci_rules",
+    name = "bazel_ci_rules",
     sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
     strip_prefix = "bazelci_rules-1.0.0",
     url = "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz",
@@ -74,7 +78,7 @@
 
 # To run with RBE on Bazel CI, uncomment the following lines.
 #
-# load("@bazelci_rules//:rbe_repo.bzl", "rbe_preconfig")
+# load("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
 # rbe_preconfig(name = "buildkite_config", toolchain = "ubuntu2004-bazel-java11")
 
 http_archive(
@@ -83,3 +87,7 @@
     strip_prefix = "rules_testing-0.6.0",
     url = "https://github.com/bazelbuild/rules_testing/releases/download/v0.6.0/rules_testing-v0.6.0.tar.gz",
 )
+
+load("//test/3rdparty/crates:crates.bzl", test_crate_repositories = "crate_repositories")
+
+test_crate_repositories()
diff --git a/bindgen/3rdparty/BUILD.bazel b/bindgen/3rdparty/BUILD.bazel
index 88f49a5..39adc71 100644
--- a/bindgen/3rdparty/BUILD.bazel
+++ b/bindgen/3rdparty/BUILD.bazel
@@ -50,6 +50,7 @@
         "clang-sys": crate.spec(
             # Should match the version of llvm-project being used.
             features = ["clang_14_0"],
+            version = "1.6.1",
         ),
     }.items() + _BINDGEN_CLI_PACKAGES.items()),
     repository_name = "rules_rust_bindgen",
diff --git a/bindgen/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel b/bindgen/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
index 55c3a2e..c89bdcd 100644
--- a/bindgen/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
@@ -14,7 +14,7 @@
     name = "aho_corasick",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.annotate-snippets-0.9.1.bazel b/bindgen/3rdparty/crates/BUILD.annotate-snippets-0.9.1.bazel
index 5faa0cd..3adbfd0 100644
--- a/bindgen/3rdparty/crates/BUILD.annotate-snippets-0.9.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.annotate-snippets-0.9.1.bazel
@@ -14,7 +14,7 @@
     name = "annotate_snippets",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.anstream-0.3.2.bazel b/bindgen/3rdparty/crates/BUILD.anstream-0.3.2.bazel
index ee3fb1f..2c3b321 100644
--- a/bindgen/3rdparty/crates/BUILD.anstream-0.3.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.anstream-0.3.2.bazel
@@ -14,7 +14,7 @@
     name = "anstream",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -92,13 +92,13 @@
         "@rules_rust_bindgen__utf8parse-0.2.1//:utf8parse",
     ] + select({
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
-            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # aarch64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
-            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # i686-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
-            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@rules_rust_bindgen__anstyle-wincon-1.0.1//:anstyle_wincon",  # x86_64-pc-windows-msvc
         ],
         "//conditions:default": [],
     }),
diff --git a/bindgen/3rdparty/crates/BUILD.anstyle-1.0.0.bazel b/bindgen/3rdparty/crates/BUILD.anstyle-1.0.0.bazel
index 14c1b62..6197fcf 100644
--- a/bindgen/3rdparty/crates/BUILD.anstyle-1.0.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.anstyle-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "anstyle",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.anstyle-parse-0.2.0.bazel b/bindgen/3rdparty/crates/BUILD.anstyle-parse-0.2.0.bazel
index f12dfc4..a0c9bb2 100644
--- a/bindgen/3rdparty/crates/BUILD.anstyle-parse-0.2.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.anstyle-parse-0.2.0.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_parse",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel b/bindgen/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
index fea4126..8d1da86 100644
--- a/bindgen/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_query",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel b/bindgen/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
index 4a02f9b..fe54381 100644
--- a/bindgen/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_wincon",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.bindgen-0.69.1.bazel b/bindgen/3rdparty/crates/BUILD.bindgen-0.69.1.bazel
index 55fb590..66929d6 100644
--- a/bindgen/3rdparty/crates/BUILD.bindgen-0.69.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.bindgen-0.69.1.bazel
@@ -15,7 +15,7 @@
     name = "bindgen",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -103,10 +103,10 @@
 )
 
 cargo_build_script(
-    name = "bindgen_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "__cli",
@@ -131,6 +131,7 @@
     link_deps = [
         "@rules_rust_bindgen__clang-sys-1.6.1//:clang_sys",
     ],
+    pkg_name = "bindgen",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -147,6 +148,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":bindgen_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
index 3e7b079..a8ba734 100644
--- a/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -14,7 +14,7 @@
     name = "bitflags",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.bitflags-2.4.1.bazel b/bindgen/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
index 5e274fa..e2ef5bf 100644
--- a/bindgen/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
@@ -14,7 +14,7 @@
     name = "bitflags",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.cc-1.0.79.bazel b/bindgen/3rdparty/crates/BUILD.cc-1.0.79.bazel
index 39f0d61..bbf30b2 100644
--- a/bindgen/3rdparty/crates/BUILD.cc-1.0.79.bazel
+++ b/bindgen/3rdparty/crates/BUILD.cc-1.0.79.bazel
@@ -14,7 +14,7 @@
     name = "cc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel b/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
index 1cd9946..d2149ee 100644
--- a/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
@@ -14,7 +14,7 @@
     name = "cexpr",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
index bc2864e..eda1d87 100644
--- a/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "cfg_if",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.clang-sys-1.6.1.bazel b/bindgen/3rdparty/crates/BUILD.clang-sys-1.6.1.bazel
index b7c7c83..c6412c0 100644
--- a/bindgen/3rdparty/crates/BUILD.clang-sys-1.6.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clang-sys-1.6.1.bazel
@@ -15,7 +15,7 @@
     name = "clang_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -108,10 +108,10 @@
 )
 
 cargo_build_script(
-    name = "clang-sys_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "clang_10_0",
@@ -149,6 +149,7 @@
     ),
     edition = "2015",
     links = "clang",
+    pkg_name = "clang-sys",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -168,6 +169,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":clang-sys_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.clap-4.3.3.bazel b/bindgen/3rdparty/crates/BUILD.clap-4.3.3.bazel
index c2c4af0..fe9daff 100644
--- a/bindgen/3rdparty/crates/BUILD.clap-4.3.3.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap-4.3.3.bazel
@@ -14,7 +14,7 @@
     name = "clap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.clap_builder-4.3.3.bazel b/bindgen/3rdparty/crates/BUILD.clap_builder-4.3.3.bazel
index 70a06c0..9525294 100644
--- a/bindgen/3rdparty/crates/BUILD.clap_builder-4.3.3.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap_builder-4.3.3.bazel
@@ -14,7 +14,7 @@
     name = "clap_builder",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.clap_complete-4.3.1.bazel b/bindgen/3rdparty/crates/BUILD.clap_complete-4.3.1.bazel
index fc1624a..b92c070 100644
--- a/bindgen/3rdparty/crates/BUILD.clap_complete-4.3.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap_complete-4.3.1.bazel
@@ -14,7 +14,7 @@
     name = "clap_complete",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel b/bindgen/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
index b3fbd53..f51d337 100644
--- a/bindgen/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
@@ -14,7 +14,7 @@
     name = "clap_derive",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel b/bindgen/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
index a412472..33ec210 100644
--- a/bindgen/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
@@ -14,7 +14,7 @@
     name = "clap_lex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel b/bindgen/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
index 6306a44..9ace71d 100644
--- a/bindgen/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "colorchoice",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.env_logger-0.10.0.bazel b/bindgen/3rdparty/crates/BUILD.env_logger-0.10.0.bazel
index 948bcb0..0b90143 100644
--- a/bindgen/3rdparty/crates/BUILD.env_logger-0.10.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.env_logger-0.10.0.bazel
@@ -14,7 +14,7 @@
     name = "env_logger",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.errno-0.3.1.bazel b/bindgen/3rdparty/crates/BUILD.errno-0.3.1.bazel
index a96b79e..b7c2135 100644
--- a/bindgen/3rdparty/crates/BUILD.errno-0.3.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.errno-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "errno",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel b/bindgen/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
index d6e3fcf..6a87c6b 100644
--- a/bindgen/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
@@ -14,7 +14,7 @@
     name = "errno_dragonfly",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.glob-0.3.1.bazel b/bindgen/3rdparty/crates/BUILD.glob-0.3.1.bazel
index 6170719..d57969f 100644
--- a/bindgen/3rdparty/crates/BUILD.glob-0.3.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.glob-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "glob",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.heck-0.4.1.bazel b/bindgen/3rdparty/crates/BUILD.heck-0.4.1.bazel
index b67de75..75350c6 100644
--- a/bindgen/3rdparty/crates/BUILD.heck-0.4.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.heck-0.4.1.bazel
@@ -14,7 +14,7 @@
     name = "heck",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.hermit-abi-0.3.1.bazel b/bindgen/3rdparty/crates/BUILD.hermit-abi-0.3.1.bazel
index dadd8f3..fc3c6f0 100644
--- a/bindgen/3rdparty/crates/BUILD.hermit-abi-0.3.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.hermit-abi-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "hermit_abi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel b/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
index 1698e4c..5141199 100644
--- a/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
@@ -14,7 +14,7 @@
     name = "humantime",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel b/bindgen/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
index b9d8d81..cb9123b 100644
--- a/bindgen/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
+++ b/bindgen/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
@@ -14,7 +14,7 @@
     name = "io_lifetimes",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -87,106 +87,106 @@
     version = "1.0.11",
     deps = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-apple-darwin
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-apple-ios
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-apple-ios-sim
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-fuchsia
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-linux-android
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
-            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # aarch64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # aarch64-unknown-nto-qnx710
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # arm-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # armv7-linux-androideabi
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # armv7-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # i686-linux-android
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
-            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # i686-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # i686-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # powerpc-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # riscv32imc-unknown-none-elf
         ],
         "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # riscv64gc-unknown-none-elf
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # s390x-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:thumbv7em-none-eabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # thumbv7em-none-eabi
         ],
         "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # thumbv8m.main-none-eabi
         ],
         "@rules_rust//rust/platform:wasm32-unknown-unknown": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # wasm32-unknown-unknown
         ],
         "@rules_rust//rust/platform:wasm32-wasi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # wasm32-wasi
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-linux-android
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
-            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # x86_64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(not(windows))
+            "@rules_rust_bindgen__libc-0.2.146//:libc",  # x86_64-unknown-none
         ],
         "//conditions:default": [],
     }),
diff --git a/bindgen/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel b/bindgen/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
index 8127c78..ca7a601 100644
--- a/bindgen/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
+++ b/bindgen/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
@@ -14,7 +14,7 @@
     name = "is_terminal",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
index e3f08e3..d9b57bc 100644
--- a/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -14,7 +14,7 @@
     name = "lazy_static",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel b/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel
index 7bf889d..4ac523f 100644
--- a/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel
@@ -14,7 +14,7 @@
     name = "lazycell",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.libc-0.2.146.bazel b/bindgen/3rdparty/crates/BUILD.libc-0.2.146.bazel
index 2e8b4f9..37074ff 100644
--- a/bindgen/3rdparty/crates/BUILD.libc-0.2.146.bazel
+++ b/bindgen/3rdparty/crates/BUILD.libc-0.2.146.bazel
@@ -15,7 +15,7 @@
     name = "libc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -61,9 +61,9 @@
             "std",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "default",  # aarch64-unknown-nixos-gnu
-            "extra_traits",  # aarch64-unknown-nixos-gnu
-            "std",  # aarch64-unknown-nixos-gnu
+            "default",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "extra_traits",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "std",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "default",  # aarch64-unknown-nto-qnx710
@@ -175,9 +175,9 @@
             "std",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "default",  # x86_64-unknown-nixos-gnu
-            "extra_traits",  # x86_64-unknown-nixos-gnu
-            "std",  # x86_64-unknown-nixos-gnu
+            "default",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "extra_traits",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "std",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "default",  # x86_64-unknown-none
@@ -242,10 +242,10 @@
 )
 
 cargo_build_script(
-    name = "libc_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
@@ -279,9 +279,9 @@
             "std",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "default",  # aarch64-unknown-nixos-gnu
-            "extra_traits",  # aarch64-unknown-nixos-gnu
-            "std",  # aarch64-unknown-nixos-gnu
+            "default",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "extra_traits",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "std",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "default",  # aarch64-unknown-nto-qnx710
@@ -393,9 +393,9 @@
             "std",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "default",  # x86_64-unknown-nixos-gnu
-            "extra_traits",  # x86_64-unknown-nixos-gnu
-            "std",  # x86_64-unknown-nixos-gnu
+            "default",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "extra_traits",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "std",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "default",  # x86_64-unknown-none
@@ -419,6 +419,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "libc",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -435,6 +436,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":libc_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.libloading-0.7.4.bazel b/bindgen/3rdparty/crates/BUILD.libloading-0.7.4.bazel
index eb2d193..05b484f 100644
--- a/bindgen/3rdparty/crates/BUILD.libloading-0.7.4.bazel
+++ b/bindgen/3rdparty/crates/BUILD.libloading-0.7.4.bazel
@@ -14,7 +14,7 @@
     name = "libloading",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel b/bindgen/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
index 1be08fb..668c1e7 100644
--- a/bindgen/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
+++ b/bindgen/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
@@ -14,7 +14,7 @@
     name = "linux_raw_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -37,7 +37,7 @@
             "errno",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "errno",  # aarch64-unknown-nixos-gnu
+            "errno",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
             "errno",  # arm-unknown-linux-gnueabi
@@ -52,7 +52,7 @@
             "errno",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "errno",  # x86_64-unknown-nixos-gnu
+            "errno",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/bindgen/3rdparty/crates/BUILD.log-0.4.19.bazel b/bindgen/3rdparty/crates/BUILD.log-0.4.19.bazel
index a66753d..4cffcfd 100644
--- a/bindgen/3rdparty/crates/BUILD.log-0.4.19.bazel
+++ b/bindgen/3rdparty/crates/BUILD.log-0.4.19.bazel
@@ -14,7 +14,7 @@
     name = "log",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
index 1a5f50b..a9e6299 100644
--- a/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -14,7 +14,7 @@
     name = "memchr",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel b/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
index ae14344..66e0ac7 100644
--- a/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "minimal_lexical",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.nom-7.1.3.bazel b/bindgen/3rdparty/crates/BUILD.nom-7.1.3.bazel
index 9b54f6d..0b30fb9 100644
--- a/bindgen/3rdparty/crates/BUILD.nom-7.1.3.bazel
+++ b/bindgen/3rdparty/crates/BUILD.nom-7.1.3.bazel
@@ -14,7 +14,7 @@
     name = "nom",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.once_cell-1.18.0.bazel b/bindgen/3rdparty/crates/BUILD.once_cell-1.18.0.bazel
index 8bb4c7a..6eea0fc 100644
--- a/bindgen/3rdparty/crates/BUILD.once_cell-1.18.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.once_cell-1.18.0.bazel
@@ -14,7 +14,7 @@
     name = "once_cell",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel b/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel
index 6cd0ba1..63e4189 100644
--- a/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel
@@ -14,7 +14,7 @@
     name = "peeking_take_while",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.60.bazel b/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.60.bazel
index da2518d..96ffffa 100644
--- a/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.60.bazel
+++ b/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.60.bazel
@@ -14,7 +14,7 @@
     name = "proc_macro2",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.quote-1.0.28.bazel b/bindgen/3rdparty/crates/BUILD.quote-1.0.28.bazel
index e0c62af..c06ccc2 100644
--- a/bindgen/3rdparty/crates/BUILD.quote-1.0.28.bazel
+++ b/bindgen/3rdparty/crates/BUILD.quote-1.0.28.bazel
@@ -14,7 +14,7 @@
     name = "quote",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.regex-1.8.4.bazel b/bindgen/3rdparty/crates/BUILD.regex-1.8.4.bazel
index 5cf6284..5ba1f49 100644
--- a/bindgen/3rdparty/crates/BUILD.regex-1.8.4.bazel
+++ b/bindgen/3rdparty/crates/BUILD.regex-1.8.4.bazel
@@ -14,7 +14,7 @@
     name = "regex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.regex-syntax-0.7.2.bazel b/bindgen/3rdparty/crates/BUILD.regex-syntax-0.7.2.bazel
index 796e628..cd78345 100644
--- a/bindgen/3rdparty/crates/BUILD.regex-syntax-0.7.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.regex-syntax-0.7.2.bazel
@@ -14,7 +14,7 @@
     name = "regex_syntax",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel b/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
index a436979..318972b 100644
--- a/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
@@ -14,7 +14,7 @@
     name = "rustc_hash",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.rustix-0.37.20.bazel b/bindgen/3rdparty/crates/BUILD.rustix-0.37.20.bazel
index 2cdf23c..29a7553 100644
--- a/bindgen/3rdparty/crates/BUILD.rustix-0.37.20.bazel
+++ b/bindgen/3rdparty/crates/BUILD.rustix-0.37.20.bazel
@@ -15,7 +15,7 @@
     name = "rustix",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     aliases = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": {
@@ -174,27 +174,23 @@
     deps = [
         "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
         "@rules_rust_bindgen__io-lifetimes-1.0.11//:io_lifetimes",
+        "@rules_rust_bindgen__libc-0.2.146//:libc",
         "@rules_rust_bindgen__rustix-0.37.20//:build_script_build",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
@@ -202,37 +198,29 @@
             "@rules_rust_bindgen__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
@@ -241,61 +229,47 @@
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:thumbv7em-none-eabi": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:wasm32-unknown-unknown": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:wasm32-wasi": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
@@ -304,29 +278,25 @@
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@rules_rust_bindgen__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "@rules_rust_bindgen__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@rules_rust_bindgen__libc-0.2.146//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "//conditions:default": [],
     }),
 )
 
 cargo_build_script(
-    name = "rustix_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -351,6 +321,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "rustix",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -367,6 +338,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":rustix_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel b/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel
index 90c2786..cb02b51 100644
--- a/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel
@@ -14,7 +14,7 @@
     name = "shlex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
index 75719d6..dc96cc6 100644
--- a/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -14,7 +14,7 @@
     name = "strsim",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.syn-2.0.18.bazel b/bindgen/3rdparty/crates/BUILD.syn-2.0.18.bazel
index 2dd0941..ce70554 100644
--- a/bindgen/3rdparty/crates/BUILD.syn-2.0.18.bazel
+++ b/bindgen/3rdparty/crates/BUILD.syn-2.0.18.bazel
@@ -14,7 +14,7 @@
     name = "syn",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.termcolor-1.2.0.bazel b/bindgen/3rdparty/crates/BUILD.termcolor-1.2.0.bazel
index 539610e..ca733ae 100644
--- a/bindgen/3rdparty/crates/BUILD.termcolor-1.2.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.termcolor-1.2.0.bazel
@@ -14,7 +14,7 @@
     name = "termcolor",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.9.bazel b/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.9.bazel
index bffa9fd..8c7bf72 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.9.bazel
+++ b/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.9.bazel
@@ -14,7 +14,7 @@
     name = "unicode_ident",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel b/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
index 2582ed9..a584946 100644
--- a/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
+++ b/bindgen/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
@@ -14,7 +14,7 @@
     name = "unicode_width",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel b/bindgen/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
index d74f381..5118a94 100644
--- a/bindgen/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
+++ b/bindgen/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "utf8parse",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
index f21420f..5bf160a 100644
--- a/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
+++ b/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -15,7 +15,7 @@
     name = "winapi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -99,10 +99,10 @@
 )
 
 cargo_build_script(
-    name = "winapi_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "consoleapi",
@@ -133,6 +133,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "winapi",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -149,6 +150,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":winapi_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
index 65caed8..4839d49 100644
--- a/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -14,7 +14,7 @@
     name = "winapi_i686_pc_windows_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
index 8a3454c..66ddb01 100644
--- a/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
+++ b/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -14,7 +14,7 @@
     name = "winapi_util",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
index e139ce9..6574938 100644
--- a/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -14,7 +14,7 @@
     name = "winapi_x86_64_pc_windows_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
index 4f46b04..86f275b 100644
--- a/bindgen/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows-targets-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows-targets-0.48.0.bazel
index 4ac6cc4..048d8cf 100644
--- a/bindgen/3rdparty/crates/BUILD.windows-targets-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows-targets-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_targets",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
index d07bab1..89caf99 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_aarch64_gnullvm",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
index fac1471..6baaacb 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_aarch64_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
index 4aa994d..c19681a 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_i686_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
index 5186dbe..d3bfd84 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_i686_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
index 5ae4e6c..3e86f37 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_x86_64_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
index 0caa3ce..8fdaa6b 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_x86_64_gnullvm",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel b/bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
index 94d36b8..3223837 100644
--- a/bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
+++ b/bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_x86_64_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/BUILD.yansi-term-0.1.2.bazel b/bindgen/3rdparty/crates/BUILD.yansi-term-0.1.2.bazel
index 9be8d85..13d8dad 100644
--- a/bindgen/3rdparty/crates/BUILD.yansi-term-0.1.2.bazel
+++ b/bindgen/3rdparty/crates/BUILD.yansi-term-0.1.2.bazel
@@ -14,7 +14,7 @@
     name = "yansi_term",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/bindgen/3rdparty/crates/defs.bzl b/bindgen/3rdparty/crates/defs.bzl
index 2bfde4e..50b78a3 100644
--- a/bindgen/3rdparty/crates/defs.bzl
+++ b/bindgen/3rdparty/crates/defs.bzl
@@ -368,7 +368,7 @@
     "aarch64-fuchsia": ["@rules_rust//rust/platform:aarch64-fuchsia"],
     "aarch64-linux-android": ["@rules_rust//rust/platform:aarch64-linux-android"],
     "aarch64-pc-windows-msvc": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc"],
-    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu"],
+    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
     "aarch64-unknown-nixos-gnu": ["@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
     "aarch64-unknown-nto-qnx710": ["@rules_rust//rust/platform:aarch64-unknown-nto-qnx710"],
     "arm-unknown-linux-gnueabi": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi"],
@@ -385,7 +385,6 @@
     "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", target_abi = \"llvm\", not(windows_raw_dylib)))": [],
     "cfg(all(target_arch = \"x86_64\", target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
     "cfg(not(any(windows, target_os = \"hermit\", target_os = \"unknown\")))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-wasi", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none"],
-    "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasi", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none"],
     "cfg(target_os = \"dragonfly\")": [],
     "cfg(target_os = \"hermit\")": [],
     "cfg(target_os = \"wasi\")": ["@rules_rust//rust/platform:wasm32-wasi"],
@@ -413,7 +412,7 @@
     "x86_64-pc-windows-gnu": [],
     "x86_64-pc-windows-msvc": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
     "x86_64-unknown-freebsd": ["@rules_rust//rust/platform:x86_64-unknown-freebsd"],
-    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu"],
+    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "x86_64-unknown-nixos-gnu": ["@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "x86_64-unknown-none": ["@rules_rust//rust/platform:x86_64-unknown-none"],
 }
@@ -431,7 +430,7 @@
         name = "rules_rust_bindgen__aho-corasick-1.0.2",
         sha256 = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/aho-corasick/1.0.2/download"],
+        urls = ["https://static.crates.io/crates/aho-corasick/1.0.2/download"],
         strip_prefix = "aho-corasick-1.0.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.aho-corasick-1.0.2.bazel"),
     )
@@ -441,7 +440,7 @@
         name = "rules_rust_bindgen__annotate-snippets-0.9.1",
         sha256 = "c3b9d411ecbaf79885c6df4d75fff75858d5995ff25385657a28af47e82f9c36",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/annotate-snippets/0.9.1/download"],
+        urls = ["https://static.crates.io/crates/annotate-snippets/0.9.1/download"],
         strip_prefix = "annotate-snippets-0.9.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.annotate-snippets-0.9.1.bazel"),
     )
@@ -451,7 +450,7 @@
         name = "rules_rust_bindgen__anstream-0.3.2",
         sha256 = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstream/0.3.2/download"],
+        urls = ["https://static.crates.io/crates/anstream/0.3.2/download"],
         strip_prefix = "anstream-0.3.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.anstream-0.3.2.bazel"),
     )
@@ -461,7 +460,7 @@
         name = "rules_rust_bindgen__anstyle-1.0.0",
         sha256 = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/anstyle/1.0.0/download"],
         strip_prefix = "anstyle-1.0.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.anstyle-1.0.0.bazel"),
     )
@@ -471,7 +470,7 @@
         name = "rules_rust_bindgen__anstyle-parse-0.2.0",
         sha256 = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-parse/0.2.0/download"],
+        urls = ["https://static.crates.io/crates/anstyle-parse/0.2.0/download"],
         strip_prefix = "anstyle-parse-0.2.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.anstyle-parse-0.2.0.bazel"),
     )
@@ -481,7 +480,7 @@
         name = "rules_rust_bindgen__anstyle-query-1.0.0",
         sha256 = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-query/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/anstyle-query/1.0.0/download"],
         strip_prefix = "anstyle-query-1.0.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.anstyle-query-1.0.0.bazel"),
     )
@@ -491,7 +490,7 @@
         name = "rules_rust_bindgen__anstyle-wincon-1.0.1",
         sha256 = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-wincon/1.0.1/download"],
+        urls = ["https://static.crates.io/crates/anstyle-wincon/1.0.1/download"],
         strip_prefix = "anstyle-wincon-1.0.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.anstyle-wincon-1.0.1.bazel"),
     )
@@ -501,7 +500,7 @@
         name = "rules_rust_bindgen__bindgen-0.69.1",
         sha256 = "9ffcebc3849946a7170a05992aac39da343a90676ab392c51a4280981d6379c2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bindgen/0.69.1/download"],
+        urls = ["https://static.crates.io/crates/bindgen/0.69.1/download"],
         strip_prefix = "bindgen-0.69.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bindgen-0.69.1.bazel"),
     )
@@ -511,7 +510,7 @@
         name = "rules_rust_bindgen__bitflags-1.3.2",
         sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        urls = ["https://static.crates.io/crates/bitflags/1.3.2/download"],
         strip_prefix = "bitflags-1.3.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
     )
@@ -521,7 +520,7 @@
         name = "rules_rust_bindgen__bitflags-2.4.1",
         sha256 = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bitflags/2.4.1/download"],
+        urls = ["https://static.crates.io/crates/bitflags/2.4.1/download"],
         strip_prefix = "bitflags-2.4.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bitflags-2.4.1.bazel"),
     )
@@ -531,7 +530,7 @@
         name = "rules_rust_bindgen__cc-1.0.79",
         sha256 = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cc/1.0.79/download"],
+        urls = ["https://static.crates.io/crates/cc/1.0.79/download"],
         strip_prefix = "cc-1.0.79",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cc-1.0.79.bazel"),
     )
@@ -541,7 +540,7 @@
         name = "rules_rust_bindgen__cexpr-0.6.0",
         sha256 = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cexpr/0.6.0/download"],
+        urls = ["https://static.crates.io/crates/cexpr/0.6.0/download"],
         strip_prefix = "cexpr-0.6.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cexpr-0.6.0.bazel"),
     )
@@ -551,7 +550,7 @@
         name = "rules_rust_bindgen__cfg-if-1.0.0",
         sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/cfg-if/1.0.0/download"],
         strip_prefix = "cfg-if-1.0.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
     )
@@ -561,7 +560,7 @@
         name = "rules_rust_bindgen__clang-sys-1.6.1",
         sha256 = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clang-sys/1.6.1/download"],
+        urls = ["https://static.crates.io/crates/clang-sys/1.6.1/download"],
         strip_prefix = "clang-sys-1.6.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clang-sys-1.6.1.bazel"),
     )
@@ -571,7 +570,7 @@
         name = "rules_rust_bindgen__clap-4.3.3",
         sha256 = "ca8f255e4b8027970e78db75e78831229c9815fdbfa67eb1a1b777a62e24b4a0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap/4.3.3/download"],
+        urls = ["https://static.crates.io/crates/clap/4.3.3/download"],
         strip_prefix = "clap-4.3.3",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap-4.3.3.bazel"),
     )
@@ -581,7 +580,7 @@
         name = "rules_rust_bindgen__clap_builder-4.3.3",
         sha256 = "acd4f3c17c83b0ba34ffbc4f8bbd74f079413f747f84a6f89292f138057e36ab",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_builder/4.3.3/download"],
+        urls = ["https://static.crates.io/crates/clap_builder/4.3.3/download"],
         strip_prefix = "clap_builder-4.3.3",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap_builder-4.3.3.bazel"),
     )
@@ -591,7 +590,7 @@
         name = "rules_rust_bindgen__clap_complete-4.3.1",
         sha256 = "7f6b5c519bab3ea61843a7923d074b04245624bb84a64a8c150f5deb014e388b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_complete/4.3.1/download"],
+        urls = ["https://static.crates.io/crates/clap_complete/4.3.1/download"],
         strip_prefix = "clap_complete-4.3.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap_complete-4.3.1.bazel"),
     )
@@ -601,7 +600,7 @@
         name = "rules_rust_bindgen__clap_derive-4.3.2",
         sha256 = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_derive/4.3.2/download"],
+        urls = ["https://static.crates.io/crates/clap_derive/4.3.2/download"],
         strip_prefix = "clap_derive-4.3.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap_derive-4.3.2.bazel"),
     )
@@ -611,7 +610,7 @@
         name = "rules_rust_bindgen__clap_lex-0.5.0",
         sha256 = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_lex/0.5.0/download"],
+        urls = ["https://static.crates.io/crates/clap_lex/0.5.0/download"],
         strip_prefix = "clap_lex-0.5.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap_lex-0.5.0.bazel"),
     )
@@ -621,7 +620,7 @@
         name = "rules_rust_bindgen__colorchoice-1.0.0",
         sha256 = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/colorchoice/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/colorchoice/1.0.0/download"],
         strip_prefix = "colorchoice-1.0.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.colorchoice-1.0.0.bazel"),
     )
@@ -631,7 +630,7 @@
         name = "rules_rust_bindgen__env_logger-0.10.0",
         sha256 = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/env_logger/0.10.0/download"],
+        urls = ["https://static.crates.io/crates/env_logger/0.10.0/download"],
         strip_prefix = "env_logger-0.10.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.env_logger-0.10.0.bazel"),
     )
@@ -641,7 +640,7 @@
         name = "rules_rust_bindgen__errno-0.3.1",
         sha256 = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/errno/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/errno/0.3.1/download"],
         strip_prefix = "errno-0.3.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.errno-0.3.1.bazel"),
     )
@@ -651,7 +650,7 @@
         name = "rules_rust_bindgen__errno-dragonfly-0.1.2",
         sha256 = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/errno-dragonfly/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/errno-dragonfly/0.1.2/download"],
         strip_prefix = "errno-dragonfly-0.1.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.errno-dragonfly-0.1.2.bazel"),
     )
@@ -661,7 +660,7 @@
         name = "rules_rust_bindgen__glob-0.3.1",
         sha256 = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/glob/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/glob/0.3.1/download"],
         strip_prefix = "glob-0.3.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.glob-0.3.1.bazel"),
     )
@@ -671,7 +670,7 @@
         name = "rules_rust_bindgen__heck-0.4.1",
         sha256 = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/heck/0.4.1/download"],
+        urls = ["https://static.crates.io/crates/heck/0.4.1/download"],
         strip_prefix = "heck-0.4.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.heck-0.4.1.bazel"),
     )
@@ -681,7 +680,7 @@
         name = "rules_rust_bindgen__hermit-abi-0.3.1",
         sha256 = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/hermit-abi/0.3.1/download"],
         strip_prefix = "hermit-abi-0.3.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.hermit-abi-0.3.1.bazel"),
     )
@@ -691,7 +690,7 @@
         name = "rules_rust_bindgen__humantime-2.1.0",
         sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/humantime/2.1.0/download"],
+        urls = ["https://static.crates.io/crates/humantime/2.1.0/download"],
         strip_prefix = "humantime-2.1.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.humantime-2.1.0.bazel"),
     )
@@ -701,7 +700,7 @@
         name = "rules_rust_bindgen__io-lifetimes-1.0.11",
         sha256 = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/io-lifetimes/1.0.11/download"],
+        urls = ["https://static.crates.io/crates/io-lifetimes/1.0.11/download"],
         strip_prefix = "io-lifetimes-1.0.11",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.io-lifetimes-1.0.11.bazel"),
     )
@@ -711,7 +710,7 @@
         name = "rules_rust_bindgen__is-terminal-0.4.7",
         sha256 = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/is-terminal/0.4.7/download"],
+        urls = ["https://static.crates.io/crates/is-terminal/0.4.7/download"],
         strip_prefix = "is-terminal-0.4.7",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.is-terminal-0.4.7.bazel"),
     )
@@ -721,7 +720,7 @@
         name = "rules_rust_bindgen__lazy_static-1.4.0",
         sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        urls = ["https://static.crates.io/crates/lazy_static/1.4.0/download"],
         strip_prefix = "lazy_static-1.4.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
     )
@@ -731,7 +730,7 @@
         name = "rules_rust_bindgen__lazycell-1.3.0",
         sha256 = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lazycell/1.3.0/download"],
+        urls = ["https://static.crates.io/crates/lazycell/1.3.0/download"],
         strip_prefix = "lazycell-1.3.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.lazycell-1.3.0.bazel"),
     )
@@ -741,7 +740,7 @@
         name = "rules_rust_bindgen__libc-0.2.146",
         sha256 = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libc/0.2.146/download"],
+        urls = ["https://static.crates.io/crates/libc/0.2.146/download"],
         strip_prefix = "libc-0.2.146",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.libc-0.2.146.bazel"),
     )
@@ -751,7 +750,7 @@
         name = "rules_rust_bindgen__libloading-0.7.4",
         sha256 = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libloading/0.7.4/download"],
+        urls = ["https://static.crates.io/crates/libloading/0.7.4/download"],
         strip_prefix = "libloading-0.7.4",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.libloading-0.7.4.bazel"),
     )
@@ -761,7 +760,7 @@
         name = "rules_rust_bindgen__linux-raw-sys-0.3.8",
         sha256 = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/linux-raw-sys/0.3.8/download"],
+        urls = ["https://static.crates.io/crates/linux-raw-sys/0.3.8/download"],
         strip_prefix = "linux-raw-sys-0.3.8",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.linux-raw-sys-0.3.8.bazel"),
     )
@@ -771,7 +770,7 @@
         name = "rules_rust_bindgen__log-0.4.19",
         sha256 = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/log/0.4.19/download"],
+        urls = ["https://static.crates.io/crates/log/0.4.19/download"],
         strip_prefix = "log-0.4.19",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.log-0.4.19.bazel"),
     )
@@ -781,7 +780,7 @@
         name = "rules_rust_bindgen__memchr-2.5.0",
         sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        urls = ["https://static.crates.io/crates/memchr/2.5.0/download"],
         strip_prefix = "memchr-2.5.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
     )
@@ -791,7 +790,7 @@
         name = "rules_rust_bindgen__minimal-lexical-0.2.1",
         sha256 = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/minimal-lexical/0.2.1/download"],
         strip_prefix = "minimal-lexical-0.2.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.minimal-lexical-0.2.1.bazel"),
     )
@@ -801,7 +800,7 @@
         name = "rules_rust_bindgen__nom-7.1.3",
         sha256 = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/nom/7.1.3/download"],
+        urls = ["https://static.crates.io/crates/nom/7.1.3/download"],
         strip_prefix = "nom-7.1.3",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.nom-7.1.3.bazel"),
     )
@@ -811,7 +810,7 @@
         name = "rules_rust_bindgen__once_cell-1.18.0",
         sha256 = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/once_cell/1.18.0/download"],
+        urls = ["https://static.crates.io/crates/once_cell/1.18.0/download"],
         strip_prefix = "once_cell-1.18.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.once_cell-1.18.0.bazel"),
     )
@@ -821,7 +820,7 @@
         name = "rules_rust_bindgen__peeking_take_while-0.1.2",
         sha256 = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/peeking_take_while/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/peeking_take_while/0.1.2/download"],
         strip_prefix = "peeking_take_while-0.1.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.peeking_take_while-0.1.2.bazel"),
     )
@@ -831,7 +830,7 @@
         name = "rules_rust_bindgen__proc-macro2-1.0.60",
         sha256 = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.60/download"],
+        urls = ["https://static.crates.io/crates/proc-macro2/1.0.60/download"],
         strip_prefix = "proc-macro2-1.0.60",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.proc-macro2-1.0.60.bazel"),
     )
@@ -841,7 +840,7 @@
         name = "rules_rust_bindgen__quote-1.0.28",
         sha256 = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/quote/1.0.28/download"],
+        urls = ["https://static.crates.io/crates/quote/1.0.28/download"],
         strip_prefix = "quote-1.0.28",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.quote-1.0.28.bazel"),
     )
@@ -851,7 +850,7 @@
         name = "rules_rust_bindgen__regex-1.8.4",
         sha256 = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex/1.8.4/download"],
+        urls = ["https://static.crates.io/crates/regex/1.8.4/download"],
         strip_prefix = "regex-1.8.4",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.regex-1.8.4.bazel"),
     )
@@ -861,7 +860,7 @@
         name = "rules_rust_bindgen__regex-syntax-0.7.2",
         sha256 = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.7.2/download"],
+        urls = ["https://static.crates.io/crates/regex-syntax/0.7.2/download"],
         strip_prefix = "regex-syntax-0.7.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.regex-syntax-0.7.2.bazel"),
     )
@@ -871,7 +870,7 @@
         name = "rules_rust_bindgen__rustc-hash-1.1.0",
         sha256 = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustc-hash/1.1.0/download"],
+        urls = ["https://static.crates.io/crates/rustc-hash/1.1.0/download"],
         strip_prefix = "rustc-hash-1.1.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.rustc-hash-1.1.0.bazel"),
     )
@@ -881,7 +880,7 @@
         name = "rules_rust_bindgen__rustix-0.37.20",
         sha256 = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustix/0.37.20/download"],
+        urls = ["https://static.crates.io/crates/rustix/0.37.20/download"],
         strip_prefix = "rustix-0.37.20",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.rustix-0.37.20.bazel"),
     )
@@ -891,7 +890,7 @@
         name = "rules_rust_bindgen__shlex-1.1.0",
         sha256 = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/shlex/1.1.0/download"],
+        urls = ["https://static.crates.io/crates/shlex/1.1.0/download"],
         strip_prefix = "shlex-1.1.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.shlex-1.1.0.bazel"),
     )
@@ -901,7 +900,7 @@
         name = "rules_rust_bindgen__strsim-0.10.0",
         sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        urls = ["https://static.crates.io/crates/strsim/0.10.0/download"],
         strip_prefix = "strsim-0.10.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
     )
@@ -911,7 +910,7 @@
         name = "rules_rust_bindgen__syn-2.0.18",
         sha256 = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/2.0.18/download"],
+        urls = ["https://static.crates.io/crates/syn/2.0.18/download"],
         strip_prefix = "syn-2.0.18",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.syn-2.0.18.bazel"),
     )
@@ -921,7 +920,7 @@
         name = "rules_rust_bindgen__termcolor-1.2.0",
         sha256 = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/termcolor/1.2.0/download"],
+        urls = ["https://static.crates.io/crates/termcolor/1.2.0/download"],
         strip_prefix = "termcolor-1.2.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.termcolor-1.2.0.bazel"),
     )
@@ -931,7 +930,7 @@
         name = "rules_rust_bindgen__unicode-ident-1.0.9",
         sha256 = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.9/download"],
+        urls = ["https://static.crates.io/crates/unicode-ident/1.0.9/download"],
         strip_prefix = "unicode-ident-1.0.9",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.unicode-ident-1.0.9.bazel"),
     )
@@ -941,7 +940,7 @@
         name = "rules_rust_bindgen__unicode-width-0.1.10",
         sha256 = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.10/download"],
+        urls = ["https://static.crates.io/crates/unicode-width/0.1.10/download"],
         strip_prefix = "unicode-width-0.1.10",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.unicode-width-0.1.10.bazel"),
     )
@@ -951,7 +950,7 @@
         name = "rules_rust_bindgen__utf8parse-0.2.1",
         sha256 = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/utf8parse/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/utf8parse/0.2.1/download"],
         strip_prefix = "utf8parse-0.2.1",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.utf8parse-0.2.1.bazel"),
     )
@@ -961,7 +960,7 @@
         name = "rules_rust_bindgen__winapi-0.3.9",
         sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        urls = ["https://static.crates.io/crates/winapi/0.3.9/download"],
         strip_prefix = "winapi-0.3.9",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
     )
@@ -971,7 +970,7 @@
         name = "rules_rust_bindgen__winapi-i686-pc-windows-gnu-0.4.0",
         sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
         strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
     )
@@ -981,7 +980,7 @@
         name = "rules_rust_bindgen__winapi-util-0.1.5",
         sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        urls = ["https://static.crates.io/crates/winapi-util/0.1.5/download"],
         strip_prefix = "winapi-util-0.1.5",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
     )
@@ -991,7 +990,7 @@
         name = "rules_rust_bindgen__winapi-x86_64-pc-windows-gnu-0.4.0",
         sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
         strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
     )
@@ -1001,7 +1000,7 @@
         name = "rules_rust_bindgen__windows-sys-0.48.0",
         sha256 = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows-sys/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows-sys/0.48.0/download"],
         strip_prefix = "windows-sys-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows-sys-0.48.0.bazel"),
     )
@@ -1011,7 +1010,7 @@
         name = "rules_rust_bindgen__windows-targets-0.48.0",
         sha256 = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows-targets/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows-targets/0.48.0/download"],
         strip_prefix = "windows-targets-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows-targets-0.48.0.bazel"),
     )
@@ -1021,7 +1020,7 @@
         name = "rules_rust_bindgen__windows_aarch64_gnullvm-0.48.0",
         sha256 = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.0/download"],
         strip_prefix = "windows_aarch64_gnullvm-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_aarch64_gnullvm-0.48.0.bazel"),
     )
@@ -1031,7 +1030,7 @@
         name = "rules_rust_bindgen__windows_aarch64_msvc-0.48.0",
         sha256 = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_aarch64_msvc/0.48.0/download"],
         strip_prefix = "windows_aarch64_msvc-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_aarch64_msvc-0.48.0.bazel"),
     )
@@ -1041,7 +1040,7 @@
         name = "rules_rust_bindgen__windows_i686_gnu-0.48.0",
         sha256 = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_gnu/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_i686_gnu/0.48.0/download"],
         strip_prefix = "windows_i686_gnu-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_i686_gnu-0.48.0.bazel"),
     )
@@ -1051,7 +1050,7 @@
         name = "rules_rust_bindgen__windows_i686_msvc-0.48.0",
         sha256 = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_i686_msvc/0.48.0/download"],
         strip_prefix = "windows_i686_msvc-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_i686_msvc-0.48.0.bazel"),
     )
@@ -1061,7 +1060,7 @@
         name = "rules_rust_bindgen__windows_x86_64_gnu-0.48.0",
         sha256 = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_gnu/0.48.0/download"],
         strip_prefix = "windows_x86_64_gnu-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_x86_64_gnu-0.48.0.bazel"),
     )
@@ -1071,7 +1070,7 @@
         name = "rules_rust_bindgen__windows_x86_64_gnullvm-0.48.0",
         sha256 = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.0/download"],
         strip_prefix = "windows_x86_64_gnullvm-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_x86_64_gnullvm-0.48.0.bazel"),
     )
@@ -1081,7 +1080,7 @@
         name = "rules_rust_bindgen__windows_x86_64_msvc-0.48.0",
         sha256 = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_msvc/0.48.0/download"],
         strip_prefix = "windows_x86_64_msvc-0.48.0",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.windows_x86_64_msvc-0.48.0.bazel"),
     )
@@ -1091,7 +1090,7 @@
         name = "rules_rust_bindgen__yansi-term-0.1.2",
         sha256 = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/yansi-term/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/yansi-term/0.1.2/download"],
         strip_prefix = "yansi-term-0.1.2",
         build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.yansi-term-0.1.2.bazel"),
     )
diff --git a/bindgen/private/bindgen.bzl b/bindgen/private/bindgen.bzl
index 445036b..2155cca 100644
--- a/bindgen/private/bindgen.bzl
+++ b/bindgen/private/bindgen.bzl
@@ -18,7 +18,7 @@
     "@bazel_tools//tools/build_defs/cc:action_names.bzl",
     "CPP_COMPILE_ACTION_NAME",
 )
-load("@rules_cc//cc:defs.bzl", "CcInfo")
+load("@rules_cc//cc:defs.bzl", "CcInfo", "cc_library")
 load("//rust:defs.bzl", "rust_library")
 load("//rust:rust_common.bzl", "BuildInfo")
 
@@ -48,6 +48,7 @@
         bindgen_flags = None,
         bindgen_features = None,
         clang_flags = None,
+        wrap_static_fns = False,
         **kwargs):
     """Generates a rust source file for `header`, and builds a rust_library.
 
@@ -60,6 +61,7 @@
         bindgen_flags (list, optional): Flags to pass directly to the bindgen executable. See https://rust-lang.github.io/rust-bindgen/ for details.
         bindgen_features (list, optional): The `features` attribute for the `rust_bindgen` target.
         clang_flags (list, optional): Flags to pass directly to the clang executable.
+        wrap_static_fns (bool): Whether to create a separate .c file for static fns. Requires nightly toolchain, and a header that actually needs this feature (otherwise bindgen won't generate the file and Bazel complains",
         **kwargs: Arguments to forward to the underlying `rust_library` rule.
     """
 
@@ -69,13 +71,13 @@
 
     sub_tags = tags + ([] if "manual" in tags else ["manual"])
 
-    deps = kwargs.get("deps") or []
-    if "deps" in kwargs:
-        kwargs.pop("deps")
-
     bindgen_kwargs = {}
-    if "leak_symbols" in kwargs:
-        bindgen_kwargs.update({"leak_symbols": kwargs.pop("leak_symbols")})
+    for shared in (
+        "target_compatible_with",
+        "exec_compatible_with",
+    ):
+        if shared in kwargs:
+            bindgen_kwargs.update({shared: kwargs[shared]})
 
     rust_bindgen(
         name = name + "__bindgen",
@@ -85,16 +87,33 @@
         features = bindgen_features,
         clang_flags = clang_flags or [],
         tags = sub_tags,
+        wrap_static_fns = wrap_static_fns,
         **bindgen_kwargs
     )
 
-    for custom_tag in ["__bindgen", "no-clippy", "no-rustfmt"]:
-        tags = tags + ([] if custom_tag in tags else [custom_tag])
+    tags = depset(tags + ["__bindgen", "no-clippy", "no-rustfmt"]).to_list()
+
+    deps = kwargs.get("deps") or []
+    if "deps" in kwargs:
+        kwargs.pop("deps")
+
+    if wrap_static_fns:
+        native.filegroup(
+            name = name + "__bindgen_c_thunks",
+            srcs = [":" + name + "__bindgen"],
+            output_group = "bindgen_c_thunks",
+        )
+
+        cc_library(
+            name = name + "__bindgen_c_thunks_library",
+            srcs = [":" + name + "__bindgen_c_thunks"],
+            deps = [cc_lib],
+        )
 
     rust_library(
         name = name,
         srcs = [name + "__bindgen.rs"],
-        deps = deps + [name + "__bindgen"],
+        deps = deps + [":" + name + "__bindgen"] + ([":" + name + "__bindgen_c_thunks_library"] if wrap_static_fns else []),
         tags = tags,
         **kwargs
     )
@@ -182,16 +201,17 @@
 
     cc_toolchain, feature_configuration = find_cc_toolchain(ctx = ctx)
 
-    tools = depset([clang_bin], transitive = [cc_toolchain.all_files])
+    tools = depset(([clang_bin] if clang_bin else []), transitive = [cc_toolchain.all_files])
 
     # libclang should only have 1 output file
     libclang_dir = _get_libs_for_static_executable(libclang).to_list()[0].dirname
 
     env = {
-        "CLANG_PATH": clang_bin.path,
         "LIBCLANG_PATH": libclang_dir,
         "RUST_BACKTRACE": "1",
     }
+    if clang_bin:
+        env["CLANG_PATH"] = clang_bin.path
 
     args = ctx.actions.args()
 
@@ -200,9 +220,22 @@
     args.add(header)
     args.add("--output", output)
 
+    wrap_static_fns = getattr(ctx.attr, "wrap_static_fns", False)
+
+    c_output = None
+    if wrap_static_fns:
+        if "--wrap-static-fns" in ctx.attr.bindgen_flags:
+            fail("Do not pass `--wrap-static-fns` to `bindgen_flags, it's added automatically." +
+                 "The generated C file is accesible in the `bindgen_c_thunks` output group.")
+        c_output = ctx.actions.declare_file(ctx.label.name + ".bindgen_c_thunks.c")
+        args.add("--experimental")
+        args.add("--wrap-static-fns")
+        args.add("--wrap-static-fns-path")
+        args.add(c_output.path)
+
     # Vanilla usage of bindgen produces formatted output, here we do the same if we have `rustfmt` in our toolchain.
     rustfmt_toolchain = ctx.toolchains[Label("//rust/rustfmt:toolchain_type")]
-    if toolchain.default_rustfmt:
+    if rustfmt_toolchain and toolchain.default_rustfmt:
         # Bindgen is able to find rustfmt using the RUSTFMT environment variable
         env.update({"RUSTFMT": rustfmt_toolchain.rustfmt.path})
         tools = depset(transitive = [tools, rustfmt_toolchain.all_files])
@@ -217,7 +250,10 @@
         feature_configuration = feature_configuration,
         include_directories = cc_lib[CcInfo].compilation_context.includes,
         quote_include_directories = cc_lib[CcInfo].compilation_context.quote_includes,
-        system_include_directories = cc_lib[CcInfo].compilation_context.system_includes,
+        system_include_directories = depset(
+            transitive = [cc_lib[CcInfo].compilation_context.system_includes],
+            direct = cc_toolchain.built_in_include_directories,
+        ),
         user_compile_flags = ctx.attr.clang_flags,
     )
     compile_flags = cc_common.get_memory_inefficient_command_line(
@@ -273,43 +309,36 @@
                 _get_libs_for_static_executable(libstdcxx),
             ] if libstdcxx else []),
         ),
-        outputs = [output],
+        outputs = [output] + ([c_output] if wrap_static_fns else []),
         mnemonic = "RustBindgen",
         progress_message = "Generating bindings for {}..".format(header.path),
         env = env,
         arguments = [args],
         tools = tools,
+        # ctx.actions.run now require (through a buildifier check) that we
+        # specify this
+        toolchain = None,
     )
 
-    if ctx.attr.leak_symbols:
-        # buildifier: disable=print
-        print("WARN: rust_bindgen.leak_symbols is set to True for {} - please file an issue at https://github.com/bazelbuild/rules_rust/issues explaining why this was necessary, as this support will be removed soon.".format(ctx.label))
-        providers = [cc_common.merge_cc_infos(
-            direct_cc_infos = [cc_lib[CcInfo]],
-        )]
-    else:
-        providers = [
-            _generate_cc_link_build_info(ctx, cc_lib),
-            # As in https://github.com/bazelbuild/rules_rust/pull/2361, we want
-            # to link cc_lib to the direct parent (rlib) using `-lstatic=<cc_lib>` rustc flag
-            # Hence, we do not need to provide the whole CcInfo of cc_lib because
-            # it will cause the downstream binary to link the cc_lib again
-            # (same effect as setting `leak_symbols` attribute above)
-            # The CcInfo here only contains the custom link flags (i.e. linkopts attribute)
-            # specified by users in cc_lib
-            CcInfo(
-                linking_context = cc_common.create_linking_context(
-                    linker_inputs = depset([cc_common.create_linker_input(
-                        owner = ctx.label,
-                        user_link_flags = _get_user_link_flags(cc_lib),
-                    )]),
-                ),
+    return [
+        _generate_cc_link_build_info(ctx, cc_lib),
+        # As in https://github.com/bazelbuild/rules_rust/pull/2361, we want
+        # to link cc_lib to the direct parent (rlib) using `-lstatic=<cc_lib>`
+        # rustc flag. Hence, we do not need to provide the whole CcInfo of
+        # cc_lib because it will cause the downstream binary to link the cc_lib
+        # again. The CcInfo here only contains the custom link flags (i.e.
+        # linkopts attribute) specified by users in cc_lib.
+        CcInfo(
+            linking_context = cc_common.create_linking_context(
+                linker_inputs = depset([cc_common.create_linker_input(
+                    owner = ctx.label,
+                    user_link_flags = _get_user_link_flags(cc_lib),
+                )]),
             ),
-        ]
-
-    return providers + [
+        ),
         OutputGroupInfo(
             bindgen_bindings = depset([output]),
+            bindgen_c_thunks = depset(([c_output] if wrap_static_fns else [])),
         ),
     ]
 
@@ -333,11 +362,8 @@
             allow_single_file = True,
             mandatory = True,
         ),
-        "leak_symbols": attr.bool(
-            doc = (
-                "If True, `cc_lib` will be exposed and linked into all downstream consumers of the target vs. the " +
-                "`rust_library` directly consuming it."
-            ),
+        "wrap_static_fns": attr.bool(
+            doc = "Whether to create a separate .c file for static fns. Requires nightly toolchain, and a header that actually needs this feature (otherwise bindgen won't generate the file and Bazel complains).",
             default = False,
         ),
         "_cc_toolchain": attr.label(
@@ -353,10 +379,10 @@
     outputs = {"out": "%{name}.rs"},
     fragments = ["cpp"],
     toolchains = [
-        str(Label("//bindgen:toolchain_type")),
-        str(Label("//rust:toolchain_type")),
-        str(Label("//rust/rustfmt:toolchain_type")),
-        "@bazel_tools//tools/cpp:toolchain_type",
+        config_common.toolchain_type("//bindgen:toolchain_type"),
+        config_common.toolchain_type("//rust:toolchain_type"),
+        config_common.toolchain_type("//rust/rustfmt:toolchain_type", mandatory = False),
+        config_common.toolchain_type("@bazel_tools//tools/cpp:toolchain_type"),
     ],
 )
 
diff --git a/bindgen/repositories.bzl b/bindgen/repositories.bzl
index 2ded1a9..25e8c8a 100644
--- a/bindgen/repositories.bzl
+++ b/bindgen/repositories.bzl
@@ -49,7 +49,7 @@
         name = bindgen_name,
         integrity = "sha256-iFZe4JEQqZ54KZiX+/7VA7mqAwZThu6MGBl/yvIotQE=",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bindgen-cli/{}/download".format(BINDGEN_VERSION)],
+        urls = ["https://static.crates.io/crates/bindgen-cli/bindgen-cli-{}.crate".format(BINDGEN_VERSION)],
         strip_prefix = "bindgen-cli-{}".format(BINDGEN_VERSION),
         build_file = Label("//bindgen/3rdparty:BUILD.bindgen-cli.bazel"),
     )
diff --git a/cargo/cargo_build_script_runner/lib.rs b/cargo/cargo_build_script_runner/lib.rs
index 8a1b765..3739a17 100644
--- a/cargo/cargo_build_script_runner/lib.rs
+++ b/cargo/cargo_build_script_runner/lib.rs
@@ -93,7 +93,7 @@
                 // cargo:KEY=VALUE — Metadata, used by links scripts.
                 Some(BuildScriptOutput::DepEnv(format!(
                     "{}={}",
-                    key_split[1].to_uppercase(),
+                    key_split[1].to_uppercase().replace('-', "_"),
                     param
                 )))
             }
diff --git a/cargo/private/cargo_bootstrap.bzl b/cargo/private/cargo_bootstrap.bzl
index 10a0cfa..beaac8a 100644
--- a/cargo/private/cargo_bootstrap.bzl
+++ b/cargo/private/cargo_bootstrap.bzl
@@ -177,12 +177,13 @@
     # Pretend to Bazel that this rule's input files have been used, so that it will re-run the rule if they change.
     _detect_changes(repository_ctx)
 
-    if repository_ctx.attr.version in ("beta", "nightly"):
-        channel = repository_ctx.attr.version
-        version = repository_ctx.attr.iso_date
+    # Expects something like `1.56.0`, or `nightly/2021-09-08`.
+    version, _, iso_date = repository_ctx.attr.version.partition("/")
+    if iso_date:
+        channel = version
+        version = iso_date
     else:
         channel = "stable"
-        version = repository_ctx.attr.version
 
     host_triple = get_host_triple(repository_ctx)
     cargo_template = repository_ctx.attr.rust_toolchain_cargo_template
@@ -260,9 +261,6 @@
                 "Additionally, the platform triple `*` applies to all platforms."
             ),
         ),
-        "iso_date": attr.string(
-            doc = "The iso_date of cargo binary the resolver should use. Note: This can only be set if `version` is `beta` or `nightly`",
-        ),
         "rust_toolchain_cargo_template": attr.string(
             doc = (
                 "The template to use for finding the host `cargo` binary. `{version}` (eg. '1.53.0'), " +
@@ -290,12 +288,9 @@
             default = 600,
         ),
         "version": attr.string(
-            doc = "The version of cargo the resolver should use",
+            doc = "The version of Rust the currently registered toolchain is using. Eg. `1.56.0`, or `nightly/2021-09-08`",
             default = rust_common.default_version,
         ),
-        "_cc_toolchain": attr.label(
-            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
-        ),
     },
 )
 
diff --git a/cargo/private/cargo_build_script.bzl b/cargo/private/cargo_build_script.bzl
index 675819d..244c9a7 100644
--- a/cargo/private/cargo_build_script.bzl
+++ b/cargo/private/cargo_build_script.bzl
@@ -2,8 +2,8 @@
 
 load("@bazel_skylib//lib:paths.bzl", "paths")
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
-load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "CPP_COMPILE_ACTION_NAME", "C_COMPILE_ACTION_NAME")
 load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
+load("@rules_cc//cc:action_names.bzl", "ACTION_NAMES")
 load("//rust:defs.bzl", "rust_common")
 load("//rust:rust_common.bzl", "BuildInfo", "DepInfo")
 
@@ -46,22 +46,22 @@
     )
     cc_c_args = cc_common.get_memory_inefficient_command_line(
         feature_configuration = feature_configuration,
-        action_name = C_COMPILE_ACTION_NAME,
+        action_name = ACTION_NAMES.c_compile,
         variables = compile_variables,
     )
     cc_cxx_args = cc_common.get_memory_inefficient_command_line(
         feature_configuration = feature_configuration,
-        action_name = CPP_COMPILE_ACTION_NAME,
+        action_name = ACTION_NAMES.cpp_compile,
         variables = compile_variables,
     )
     cc_env = cc_common.get_environment_variables(
         feature_configuration = feature_configuration,
-        action_name = C_COMPILE_ACTION_NAME,
+        action_name = ACTION_NAMES.c_compile,
         variables = compile_variables,
     )
     return cc_c_args, cc_cxx_args, cc_env
 
-def _pwd_flags(args):
+def _pwd_flags_sysroot(args):
     """Prefix execroot-relative paths of known arguments with ${pwd}.
 
     Args:
@@ -79,6 +79,30 @@
             res.append(arg)
     return res
 
+def _pwd_flags_isystem(args):
+    """Prefix execroot-relative paths of known arguments with ${pwd}.
+
+    Args:
+        args (list): List of tool arguments.
+
+    Returns:
+        list: The modified argument list.
+    """
+    res = []
+    fix_next_arg = False
+    for arg in args:
+        if fix_next_arg and not paths.is_absolute(arg):
+            res.append("${{pwd}}/{}".format(arg))
+        else:
+            res.append(arg)
+
+        fix_next_arg = arg == "-isystem"
+
+    return res
+
+def _pwd_flags(args):
+    return _pwd_flags_isystem(_pwd_flags_sysroot(args))
+
 def _feature_enabled(ctx, feature_name, default = False):
     """Check if a feature is enabled.
 
@@ -127,7 +151,9 @@
         stderr = ctx.actions.declare_file(ctx.label.name + ".stderr.log"),
     )
 
-    pkg_name = name_to_pkg_name(ctx.label.name)
+    pkg_name = ctx.attr.pkg_name
+    if pkg_name == "":
+        pkg_name = name_to_pkg_name(ctx.label.name)
 
     toolchain_tools = [toolchain.all_files]
 
@@ -181,13 +207,18 @@
     if cc_toolchain:
         toolchain_tools.append(cc_toolchain.all_files)
 
-        cc_executable = cc_toolchain.compiler_executable
-        if cc_executable:
-            env["CC"] = cc_executable
-            env["CXX"] = cc_executable
-        ar_executable = cc_toolchain.ar_executable
-        if ar_executable:
-            env["AR"] = ar_executable
+        env["CC"] = cc_common.get_tool_for_action(
+            feature_configuration = feature_configuration,
+            action_name = ACTION_NAMES.c_compile,
+        )
+        env["CXX"] = cc_common.get_tool_for_action(
+            feature_configuration = feature_configuration,
+            action_name = ACTION_NAMES.cpp_compile,
+        )
+        env["AR"] = cc_common.get_tool_for_action(
+            feature_configuration = feature_configuration,
+            action_name = ACTION_NAMES.cpp_link_static_library,
+        )
 
         # Populate CFLAGS and CXXFLAGS that cc-rs relies on when building from source, in particular
         # to determine the deployment target when building for apple platforms (`macosx-version-min`
@@ -291,9 +322,15 @@
         progress_message = "Running Cargo build script {}".format(pkg_name),
         env = env,
         toolchain = None,
+        # Set use_default_shell_env so that $PATH is set, as tools like cmake may want to probe $PATH for helper tools.
+        use_default_shell_env = True,
     )
 
     return [
+        # Although this isn't used anywhere, without this, `bazel build`'ing
+        # the cargo_build_script label won't actually run the build script
+        # since bazel is lazy.
+        DefaultInfo(files = depset([out_dir])),
         BuildInfo(
             out_dir = out_dir,
             rustc_env = env_out,
@@ -342,6 +379,9 @@
         "links": attr.string(
             doc = "The name of the native library this crate links against.",
         ),
+        "pkg_name": attr.string(
+            doc = "The name of package being compiled, if not derived from `name`.",
+        ),
         "rundir": attr.string(
             default = "",
             doc = dedent("""\
@@ -357,7 +397,7 @@
                 List of compiler flags passed to `rustc`.
 
                 These strings are subject to Make variable expansion for predefined
-                source/output path variables like `$location`, `$execpath`, and 
+                source/output path variables like `$location`, `$execpath`, and
                 `$rootpath`. This expansion is useful if you wish to pass a generated
                 file of arguments to rustc: `@$(location //package:target)`.
             """),
diff --git a/cargo/private/cargo_build_script_wrapper.bzl b/cargo/private/cargo_build_script_wrapper.bzl
index 51421fd..1860e61 100644
--- a/cargo/private/cargo_build_script_wrapper.bzl
+++ b/cargo/private/cargo_build_script_wrapper.bzl
@@ -31,6 +31,7 @@
         visibility = None,
         tags = None,
         aliases = None,
+        pkg_name = None,
         **kwargs):
     """Compile and execute a rust build script to generate build attributes
 
@@ -92,7 +93,7 @@
 
     Args:
         name (str): The name for the underlying rule. This should be the name of the package
-            being compiled, optionally with a suffix of `_build_script`.
+            being compiled, optionally with a suffix of `_bs`. Otherwise, you can set the package name via `pkg_name`.
         edition (str): The rust edition to use for the internal binary crate.
         crate_name (str): Crate name to use for build script.
         crate_root (label): The file that will be passed to rustc to be used for building this crate.
@@ -100,6 +101,7 @@
         crate_features (list, optional): A list of features to enable for the build script.
         version (str, optional): The semantic version (semver) of the crate.
         deps (list, optional): The build-dependencies of the crate.
+        pkg_name (string, optional): Override the package name used for the build script. This is useful if the build target name gets too long otherwise.
         link_deps (list, optional): The subset of the (normal) dependencies of the crate that have the
             links attribute and therefore provide environment variables to this build script.
         proc_macro_deps (list of label, optional): List of rust_proc_macro targets used to build the script.
@@ -131,9 +133,12 @@
     # available both when we invoke rustc (this code) and when we run the compiled build
     # script (_cargo_build_script_impl). https://github.com/bazelbuild/rules_rust/issues/661
     # will hopefully remove this duplication.
+    if pkg_name == None:
+        pkg_name = name_to_pkg_name(name)
+
     rustc_env = dict(rustc_env)
     if "CARGO_PKG_NAME" not in rustc_env:
-        rustc_env["CARGO_PKG_NAME"] = name_to_pkg_name(name)
+        rustc_env["CARGO_PKG_NAME"] = pkg_name
     if "CARGO_CRATE_NAME" not in rustc_env:
         rustc_env["CARGO_CRATE_NAME"] = name_to_crate_name(name_to_pkg_name(name))
 
@@ -173,5 +178,6 @@
         rustc_flags = rustc_flags,
         visibility = visibility,
         tags = tags,
+        pkg_name = pkg_name,
         **kwargs
     )
diff --git a/crate_universe/3rdparty/crates/BUILD.adler-1.0.2.bazel b/crate_universe/3rdparty/crates/BUILD.adler-1.0.2.bazel
index 3253ce6..bb8b7b8 100644
--- a/crate_universe/3rdparty/crates/BUILD.adler-1.0.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.adler-1.0.2.bazel
@@ -14,7 +14,7 @@
     name = "adler",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel b/crate_universe/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
index 8a2bc25..2d72dd8 100644
--- a/crate_universe/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.aho-corasick-1.0.2.bazel
@@ -14,7 +14,7 @@
     name = "aho_corasick",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.android-tzdata-0.1.1.bazel b/crate_universe/3rdparty/crates/BUILD.android-tzdata-0.1.1.bazel
index 2a75686..64464d9 100644
--- a/crate_universe/3rdparty/crates/BUILD.android-tzdata-0.1.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.android-tzdata-0.1.1.bazel
@@ -14,7 +14,7 @@
     name = "android_tzdata",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.android_system_properties-0.1.5.bazel b/crate_universe/3rdparty/crates/BUILD.android_system_properties-0.1.5.bazel
index c3e9919..da983d2 100644
--- a/crate_universe/3rdparty/crates/BUILD.android_system_properties-0.1.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.android_system_properties-0.1.5.bazel
@@ -14,7 +14,7 @@
     name = "android_system_properties",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.anstream-0.3.2.bazel b/crate_universe/3rdparty/crates/BUILD.anstream-0.3.2.bazel
index 18fb78f..9a6fda1 100644
--- a/crate_universe/3rdparty/crates/BUILD.anstream-0.3.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anstream-0.3.2.bazel
@@ -14,7 +14,7 @@
     name = "anstream",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -92,13 +92,13 @@
         "@cui__utf8parse-0.2.1//:utf8parse",
     ] + select({
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
-            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # aarch64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
-            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # i686-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
-            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # cfg(windows)
+            "@cui__anstyle-wincon-1.0.1//:anstyle_wincon",  # x86_64-pc-windows-msvc
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.anstyle-1.0.1.bazel b/crate_universe/3rdparty/crates/BUILD.anstyle-1.0.1.bazel
index 8251473..907be88 100644
--- a/crate_universe/3rdparty/crates/BUILD.anstyle-1.0.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anstyle-1.0.1.bazel
@@ -14,7 +14,7 @@
     name = "anstyle",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.anstyle-parse-0.2.1.bazel b/crate_universe/3rdparty/crates/BUILD.anstyle-parse-0.2.1.bazel
index 19de3c3..63f7bf6 100644
--- a/crate_universe/3rdparty/crates/BUILD.anstyle-parse-0.2.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anstyle-parse-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_parse",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
index 794cc17..7b61db1 100644
--- a/crate_universe/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anstyle-query-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_query",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel b/crate_universe/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
index 07632b8..2185d1b 100644
--- a/crate_universe/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anstyle-wincon-1.0.1.bazel
@@ -14,7 +14,7 @@
     name = "anstyle_wincon",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.75.bazel b/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.75.bazel
index bd32090..cf01838 100644
--- a/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.75.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.75.bazel
@@ -15,7 +15,7 @@
     name = "anyhow",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -89,10 +89,10 @@
 )
 
 cargo_build_script(
-    name = "anyhow_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -113,6 +113,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "anyhow",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -129,6 +130,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":anyhow_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.arc-swap-1.6.0.bazel b/crate_universe/3rdparty/crates/BUILD.arc-swap-1.6.0.bazel
index 8987bc8..8d7739b 100644
--- a/crate_universe/3rdparty/crates/BUILD.arc-swap-1.6.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.arc-swap-1.6.0.bazel
@@ -14,7 +14,7 @@
     name = "arc_swap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.arrayvec-0.7.4.bazel b/crate_universe/3rdparty/crates/BUILD.arrayvec-0.7.4.bazel
index 4206d89..e7b8842 100644
--- a/crate_universe/3rdparty/crates/BUILD.arrayvec-0.7.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.arrayvec-0.7.4.bazel
@@ -14,7 +14,7 @@
     name = "arrayvec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
index 8f83e33..2e6b4c7 100644
--- a/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -14,7 +14,7 @@
     name = "autocfg",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.bazel b/crate_universe/3rdparty/crates/BUILD.bazel
index bddceab..c36b4d4 100644
--- a/crate_universe/3rdparty/crates/BUILD.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.bazel
@@ -63,7 +63,7 @@
 
 alias(
     name = "cargo_toml",
-    actual = "@cui__cargo_toml-0.17.1//:cargo_toml",
+    actual = "@cui__cargo_toml-0.19.2//:cargo_toml",
     tags = ["manual"],
 )
 
@@ -116,6 +116,12 @@
 )
 
 alias(
+    name = "once_cell",
+    actual = "@cui__once_cell-1.19.0//:once_cell",
+    tags = ["manual"],
+)
+
+alias(
     name = "pathdiff",
     actual = "@cui__pathdiff-0.2.1//:pathdiff",
     tags = ["manual"],
@@ -204,3 +210,9 @@
     actual = "@cui__tracing-subscriber-0.3.17//:tracing_subscriber",
     tags = ["manual"],
 )
+
+alias(
+    name = "url",
+    actual = "@cui__url-2.5.2//:url",
+    tags = ["manual"],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
index 3a0d65c..6ba9124 100644
--- a/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -14,7 +14,7 @@
     name = "bitflags",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.bitflags-2.4.1.bazel b/crate_universe/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
index 2808721..cf41cc6 100644
--- a/crate_universe/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.bitflags-2.4.1.bazel
@@ -14,7 +14,7 @@
     name = "bitflags",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -48,7 +48,7 @@
             "std",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "std",  # aarch64-unknown-nixos-gnu
+            "std",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "std",  # aarch64-unknown-nto-qnx710
@@ -102,7 +102,7 @@
             "std",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "std",  # x86_64-unknown-nixos-gnu
+            "std",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.4.bazel b/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.4.bazel
index e790b49..af0336b 100644
--- a/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.4.bazel
@@ -14,7 +14,7 @@
     name = "block_buffer",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.bstr-1.6.0.bazel b/crate_universe/3rdparty/crates/BUILD.bstr-1.6.0.bazel
index 03350f5..663ee8a 100644
--- a/crate_universe/3rdparty/crates/BUILD.bstr-1.6.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.bstr-1.6.0.bazel
@@ -14,7 +14,7 @@
     name = "bstr",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.btoi-0.4.3.bazel b/crate_universe/3rdparty/crates/BUILD.btoi-0.4.3.bazel
index 7e74a2f..230364b 100644
--- a/crate_universe/3rdparty/crates/BUILD.btoi-0.4.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.btoi-0.4.3.bazel
@@ -14,7 +14,7 @@
     name = "btoi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.bumpalo-3.13.0.bazel b/crate_universe/3rdparty/crates/BUILD.bumpalo-3.13.0.bazel
index 712e6e5..bc75c9b 100644
--- a/crate_universe/3rdparty/crates/BUILD.bumpalo-3.13.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.bumpalo-3.13.0.bazel
@@ -14,7 +14,7 @@
     name = "bumpalo",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -28,6 +28,9 @@
             "WORKSPACE.bazel",
         ],
     ),
+    crate_features = [
+        "default",
+    ],
     crate_root = "src/lib.rs",
     edition = "2021",
     rustc_flags = [
diff --git a/crate_universe/3rdparty/crates/BUILD.byteyarn-0.2.3.bazel b/crate_universe/3rdparty/crates/BUILD.byteyarn-0.2.3.bazel
index f85e83a..9eac47a 100644
--- a/crate_universe/3rdparty/crates/BUILD.byteyarn-0.2.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.byteyarn-0.2.3.bazel
@@ -14,7 +14,7 @@
     name = "byteyarn",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.camino-1.1.6.bazel b/crate_universe/3rdparty/crates/BUILD.camino-1.1.6.bazel
index 93e8b19..1202831 100644
--- a/crate_universe/3rdparty/crates/BUILD.camino-1.1.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.camino-1.1.6.bazel
@@ -15,7 +15,7 @@
     name = "camino",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "camino_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "serde",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "camino",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":camino_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.cargo-lock-9.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.cargo-lock-9.0.0.bazel
index 7e8d11c..98279c1 100644
--- a/crate_universe/3rdparty/crates/BUILD.cargo-lock-9.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cargo-lock-9.0.0.bazel
@@ -14,7 +14,7 @@
     name = "cargo_lock",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -82,6 +82,6 @@
         "@cui__semver-1.0.20//:semver",
         "@cui__serde-1.0.190//:serde",
         "@cui__toml-0.7.6//:toml",
-        "@cui__url-2.4.0//:url",
+        "@cui__url-2.5.2//:url",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.4.bazel b/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.4.bazel
index 0d5a2b1..72aad39 100644
--- a/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.4.bazel
@@ -14,7 +14,7 @@
     name = "cargo_platform",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.18.1.bazel b/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.18.1.bazel
index a128ae3..8afd74c 100644
--- a/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.18.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.18.1.bazel
@@ -14,7 +14,7 @@
     name = "cargo_metadata",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.17.1.bazel b/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.17.1.bazel
deleted file mode 100644
index 5f7e824..0000000
--- a/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.17.1.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "cargo_toml",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_root = "src/cargo_toml.rs",
-    edition = "2021",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=cargo_toml",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "0.17.1",
-    deps = [
-        "@cui__serde-1.0.190//:serde",
-        "@cui__toml-0.8.10//:toml",
-    ],
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.19.2.bazel b/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.19.2.bazel
new file mode 100644
index 0000000..a225037
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.19.2.bazel
@@ -0,0 +1,85 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "cargo_toml",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_root = "src/cargo_toml.rs",
+    edition = "2021",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=cargo_toml",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "0.19.2",
+    deps = [
+        "@cui__serde-1.0.190//:serde",
+        "@cui__toml-0.8.10//:toml",
+    ],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.cc-1.0.79.bazel b/crate_universe/3rdparty/crates/BUILD.cc-1.0.79.bazel
index a667aa0..c7708f6 100644
--- a/crate_universe/3rdparty/crates/BUILD.cc-1.0.79.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cc-1.0.79.bazel
@@ -14,7 +14,7 @@
     name = "cc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.15.5.bazel b/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.15.5.bazel
index c4d77a9..66dcc85 100644
--- a/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.15.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.15.5.bazel
@@ -14,7 +14,7 @@
     name = "cfg_expr",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
index ce6f047..0bd4159 100644
--- a/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "cfg_if",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.chrono-0.4.26.bazel b/crate_universe/3rdparty/crates/BUILD.chrono-0.4.26.bazel
index df016e3..1d679d1 100644
--- a/crate_universe/3rdparty/crates/BUILD.chrono-0.4.26.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.chrono-0.4.26.bazel
@@ -14,7 +14,7 @@
     name = "chrono",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -88,89 +88,89 @@
         "@cui__num-traits-0.2.15//:num_traits",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-apple-darwin
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-apple-ios
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-apple-ios-sim
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-fuchsia
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
             "@cui__android-tzdata-0.1.1//:android_tzdata",  # cfg(target_os = "android")
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-linux-android
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
-            "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
+            "@cui__winapi-0.3.9//:winapi",  # aarch64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # aarch64-unknown-nto-qnx710
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # arm-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
             "@cui__android-tzdata-0.1.1//:android_tzdata",  # cfg(target_os = "android")
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # armv7-linux-androideabi
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # armv7-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
             "@cui__android-tzdata-0.1.1//:android_tzdata",  # cfg(target_os = "android")
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # i686-linux-android
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
-            "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
+            "@cui__winapi-0.3.9//:winapi",  # i686-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # i686-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # powerpc-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # s390x-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
             "@cui__android-tzdata-0.1.1//:android_tzdata",  # cfg(target_os = "android")
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-linux-android
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
-            "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
+            "@cui__winapi-0.3.9//:winapi",  # x86_64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # cfg(unix)
+            "@cui__iana-time-zone-0.1.57//:iana_time_zone",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.8.4.bazel b/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.8.4.bazel
index df09989..ef64fc9 100644
--- a/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.8.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.8.4.bazel
@@ -15,7 +15,7 @@
     name = "chrono_tz",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -91,10 +91,10 @@
 )
 
 cargo_build_script(
-    name = "chrono-tz_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -115,6 +115,7 @@
         ],
     ),
     edition = "2021",
+    pkg_name = "chrono-tz",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -134,6 +135,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":chrono-tz_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.2.1.bazel b/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.2.1.bazel
index e48a2c1..dc8ea7d 100644
--- a/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.2.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "chrono_tz_build",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.clap-4.3.11.bazel b/crate_universe/3rdparty/crates/BUILD.clap-4.3.11.bazel
index 989f670..ea0f200 100644
--- a/crate_universe/3rdparty/crates/BUILD.clap-4.3.11.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.clap-4.3.11.bazel
@@ -14,7 +14,7 @@
     name = "clap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -94,6 +94,6 @@
     version = "4.3.11",
     deps = [
         "@cui__clap_builder-4.3.11//:clap_builder",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.clap_builder-4.3.11.bazel b/crate_universe/3rdparty/crates/BUILD.clap_builder-4.3.11.bazel
index ff471fe..374b1ea 100644
--- a/crate_universe/3rdparty/crates/BUILD.clap_builder-4.3.11.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.clap_builder-4.3.11.bazel
@@ -14,7 +14,7 @@
     name = "clap_builder",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel b/crate_universe/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
index d0564ed..89197bc 100644
--- a/crate_universe/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.clap_derive-4.3.2.bazel
@@ -14,7 +14,7 @@
     name = "clap_derive",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel b/crate_universe/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
index 1a2e2ee..4cbeb57 100644
--- a/crate_universe/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.clap_lex-0.5.0.bazel
@@ -14,7 +14,7 @@
     name = "clap_lex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.clru-0.6.1.bazel b/crate_universe/3rdparty/crates/BUILD.clru-0.6.1.bazel
index e50f8d6..7ed277c 100644
--- a/crate_universe/3rdparty/crates/BUILD.clru-0.6.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.clru-0.6.1.bazel
@@ -14,7 +14,7 @@
     name = "clru",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
index 197e9dd..730ca4f 100644
--- a/crate_universe/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.colorchoice-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "colorchoice",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.core-foundation-sys-0.8.4.bazel b/crate_universe/3rdparty/crates/BUILD.core-foundation-sys-0.8.4.bazel
index 62cc325..b454312 100644
--- a/crate_universe/3rdparty/crates/BUILD.core-foundation-sys-0.8.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.core-foundation-sys-0.8.4.bazel
@@ -14,7 +14,7 @@
     name = "core_foundation_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.9.bazel b/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.9.bazel
index 0d22485..e3f1856 100644
--- a/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.9.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.9.bazel
@@ -14,7 +14,7 @@
     name = "cpufeatures",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.crates-index-2.2.0.bazel b/crate_universe/3rdparty/crates/BUILD.crates-index-2.2.0.bazel
index f4661a5..7d17bcb 100644
--- a/crate_universe/3rdparty/crates/BUILD.crates-index-2.2.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crates-index-2.2.0.bazel
@@ -14,7 +14,7 @@
     name = "crates_index",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.crc32fast-1.3.2.bazel b/crate_universe/3rdparty/crates/BUILD.crc32fast-1.3.2.bazel
index e9d9919..48adf7e 100644
--- a/crate_universe/3rdparty/crates/BUILD.crc32fast-1.3.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crc32fast-1.3.2.bazel
@@ -15,7 +15,7 @@
     name = "crc32fast",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "crc32fast_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "crc32fast",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":crc32fast_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-0.8.2.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-0.8.2.bazel
index 0ed392f..653004a 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-0.8.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-0.8.2.bazel
@@ -14,7 +14,7 @@
     name = "crossbeam",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-channel-0.5.8.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-channel-0.5.8.bazel
index e09c5b9..a424e0f 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-channel-0.5.8.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-channel-0.5.8.bazel
@@ -14,7 +14,7 @@
     name = "crossbeam_channel",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-deque-0.8.3.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-deque-0.8.3.bazel
index 63e7c4b..e017a73 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-deque-0.8.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-deque-0.8.3.bazel
@@ -14,7 +14,7 @@
     name = "crossbeam_deque",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-epoch-0.9.15.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-epoch-0.9.15.bazel
index 5db7ab9..b83b965 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-epoch-0.9.15.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-epoch-0.9.15.bazel
@@ -15,7 +15,7 @@
     name = "crossbeam_epoch",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -93,10 +93,10 @@
 )
 
 cargo_build_script(
-    name = "crossbeam-epoch_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "alloc",
@@ -117,6 +117,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "crossbeam-epoch",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -136,6 +137,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":crossbeam-epoch_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-queue-0.3.8.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-queue-0.3.8.bazel
index bd4cb44..faeea4a 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-queue-0.3.8.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-queue-0.3.8.bazel
@@ -15,7 +15,7 @@
     name = "crossbeam_queue",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -91,10 +91,10 @@
 )
 
 cargo_build_script(
-    name = "crossbeam-queue_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "alloc",
@@ -115,6 +115,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "crossbeam-queue",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -131,6 +132,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":crossbeam-queue_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.16.bazel b/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.16.bazel
index b78de3e..891cb71 100644
--- a/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.16.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.16.bazel
@@ -15,7 +15,7 @@
     name = "crossbeam_utils",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "crossbeam-utils_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "crossbeam-utils",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":crossbeam-utils_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.6.bazel b/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.6.bazel
index 4ced972..eae026b 100644
--- a/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.6.bazel
@@ -14,7 +14,7 @@
     name = "crypto_common",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.deranged-0.3.9.bazel b/crate_universe/3rdparty/crates/BUILD.deranged-0.3.9.bazel
index 4fe1351..b122a6b 100644
--- a/crate_universe/3rdparty/crates/BUILD.deranged-0.3.9.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.deranged-0.3.9.bazel
@@ -14,7 +14,7 @@
     name = "deranged",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel b/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
index 84e9c55..7aff41f 100644
--- a/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
@@ -14,7 +14,7 @@
     name = "deunicode",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.digest-0.10.7.bazel b/crate_universe/3rdparty/crates/BUILD.digest-0.10.7.bazel
index 2d00507..d1abacc 100644
--- a/crate_universe/3rdparty/crates/BUILD.digest-0.10.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.digest-0.10.7.bazel
@@ -14,7 +14,7 @@
     name = "digest",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.dunce-1.0.4.bazel b/crate_universe/3rdparty/crates/BUILD.dunce-1.0.4.bazel
index a7f0a22..0e2734f 100644
--- a/crate_universe/3rdparty/crates/BUILD.dunce-1.0.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.dunce-1.0.4.bazel
@@ -14,7 +14,7 @@
     name = "dunce",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.either-1.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.either-1.9.0.bazel
index 60cb07a..e3d4b14 100644
--- a/crate_universe/3rdparty/crates/BUILD.either-1.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.either-1.9.0.bazel
@@ -14,7 +14,7 @@
     name = "either",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.encoding_rs-0.8.33.bazel b/crate_universe/3rdparty/crates/BUILD.encoding_rs-0.8.33.bazel
index 931c5b8..f10dff0 100644
--- a/crate_universe/3rdparty/crates/BUILD.encoding_rs-0.8.33.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.encoding_rs-0.8.33.bazel
@@ -14,7 +14,7 @@
     name = "encoding_rs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.equivalent-1.0.1.bazel b/crate_universe/3rdparty/crates/BUILD.equivalent-1.0.1.bazel
index 184f828..dcc271e 100644
--- a/crate_universe/3rdparty/crates/BUILD.equivalent-1.0.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.equivalent-1.0.1.bazel
@@ -14,7 +14,7 @@
     name = "equivalent",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.errno-0.3.1.bazel b/crate_universe/3rdparty/crates/BUILD.errno-0.3.1.bazel
index 7d288b2..e5add51 100644
--- a/crate_universe/3rdparty/crates/BUILD.errno-0.3.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.errno-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "errno",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel b/crate_universe/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
index b150d26..d775c38 100644
--- a/crate_universe/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.errno-dragonfly-0.1.2.bazel
@@ -15,7 +15,7 @@
     name = "errno_dragonfly",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -86,10 +86,10 @@
 )
 
 cargo_build_script(
-    name = "errno-dragonfly_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -106,6 +106,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "errno-dragonfly",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -125,6 +126,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":errno-dragonfly_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.faster-hex-0.8.1.bazel b/crate_universe/3rdparty/crates/BUILD.faster-hex-0.8.1.bazel
index cd9c15e..8c58ff0 100644
--- a/crate_universe/3rdparty/crates/BUILD.faster-hex-0.8.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.faster-hex-0.8.1.bazel
@@ -14,7 +14,7 @@
     name = "faster_hex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.fastrand-2.0.1.bazel b/crate_universe/3rdparty/crates/BUILD.fastrand-2.0.1.bazel
index 5ae557e..220dfd7 100644
--- a/crate_universe/3rdparty/crates/BUILD.fastrand-2.0.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.fastrand-2.0.1.bazel
@@ -14,7 +14,7 @@
     name = "fastrand",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.filetime-0.2.22.bazel b/crate_universe/3rdparty/crates/BUILD.filetime-0.2.22.bazel
index c0cf6cc..62fec19 100644
--- a/crate_universe/3rdparty/crates/BUILD.filetime-0.2.22.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.filetime-0.2.22.bazel
@@ -14,7 +14,7 @@
     name = "filetime",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.flate2-1.0.28.bazel b/crate_universe/3rdparty/crates/BUILD.flate2-1.0.28.bazel
index 506f747..ffb0d04 100644
--- a/crate_universe/3rdparty/crates/BUILD.flate2-1.0.28.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.flate2-1.0.28.bazel
@@ -14,7 +14,7 @@
     name = "flate2",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel b/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
index 7051bbd..51c71c5 100644
--- a/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
@@ -14,7 +14,7 @@
     name = "fnv",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.0.bazel b/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.0.bazel
deleted file mode 100644
index 9bf21b6..0000000
--- a/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.0.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "form_urlencoded",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "alloc",
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=form_urlencoded",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "1.2.0",
-    deps = [
-        "@cui__percent-encoding-2.3.0//:percent_encoding",
-    ],
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.1.bazel b/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.1.bazel
new file mode 100644
index 0000000..77b4d91
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.2.1.bazel
@@ -0,0 +1,89 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "form_urlencoded",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "alloc",
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=form_urlencoded",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "1.2.1",
+    deps = [
+        "@cui__percent-encoding-2.3.1//:percent_encoding",
+    ],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel b/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
index 6ee0a5d..c675c0d 100644
--- a/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
@@ -14,7 +14,7 @@
     name = "fuchsia_cprng",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.7.bazel b/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.7.bazel
index bbbc688..f5c5a20 100644
--- a/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.7.bazel
@@ -15,7 +15,7 @@
     name = "generic_array",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -89,10 +89,10 @@
 )
 
 cargo_build_script(
-    name = "generic-array_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "more_lengths",
@@ -112,6 +112,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "generic-array",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -131,6 +132,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":generic-array_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.10.bazel b/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.10.bazel
index 5631432..f15c1c4 100644
--- a/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.10.bazel
@@ -14,7 +14,7 @@
     name = "getrandom",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-0.54.1.bazel b/crate_universe/3rdparty/crates/BUILD.gix-0.54.1.bazel
index 4e41cec..195da7b 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-0.54.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-0.54.1.bazel
@@ -14,7 +14,7 @@
     name = "gix",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -132,7 +132,7 @@
         "@cui__gix-utils-0.1.5//:gix_utils",
         "@cui__gix-validate-0.8.0//:gix_validate",
         "@cui__gix-worktree-0.26.0//:gix_worktree",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__parking_lot-0.12.1//:parking_lot",
         "@cui__smallvec-1.11.0//:smallvec",
         "@cui__thiserror-1.0.50//:thiserror",
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-actor-0.27.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-actor-0.27.0.bazel
index 7695f3d..efae01b 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-actor-0.27.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-actor-0.27.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_actor",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-attributes-0.19.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-attributes-0.19.0.bazel
index 2e06008..b80fc0e 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-attributes-0.19.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-attributes-0.19.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_attributes",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-bitmap-0.2.7.bazel b/crate_universe/3rdparty/crates/BUILD.gix-bitmap-0.2.7.bazel
index 4940aad..a931148 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-bitmap-0.2.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-bitmap-0.2.7.bazel
@@ -14,7 +14,7 @@
     name = "gix_bitmap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-chunk-0.4.4.bazel b/crate_universe/3rdparty/crates/BUILD.gix-chunk-0.4.4.bazel
index d8b1f58..5efad48 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-chunk-0.4.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-chunk-0.4.4.bazel
@@ -14,7 +14,7 @@
     name = "gix_chunk",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-command-0.2.10.bazel b/crate_universe/3rdparty/crates/BUILD.gix-command-0.2.10.bazel
index 1bcd3ad..b714bfb 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-command-0.2.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-command-0.2.10.bazel
@@ -14,7 +14,7 @@
     name = "gix_command",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-commitgraph-0.21.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-commitgraph-0.21.0.bazel
index 4932ce0..e1372b6 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-commitgraph-0.21.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-commitgraph-0.21.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_commitgraph",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-config-0.30.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-config-0.30.0.bazel
index 47fadb5..05ae3fd 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-config-0.30.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-config-0.30.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_config",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -87,7 +87,7 @@
         "@cui__gix-ref-0.37.0//:gix_ref",
         "@cui__gix-sec-0.10.0//:gix_sec",
         "@cui__memchr-2.6.4//:memchr",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__smallvec-1.11.0//:smallvec",
         "@cui__thiserror-1.0.50//:thiserror",
         "@cui__unicode-bom-2.0.2//:unicode_bom",
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-config-value-0.14.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-config-value-0.14.0.bazel
index 062ad91..bf64060 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-config-value-0.14.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-config-value-0.14.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_config_value",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-credentials-0.20.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-credentials-0.20.0.bazel
index 8a7a324..0a51282 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-credentials-0.20.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-credentials-0.20.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_credentials",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-date-0.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-date-0.8.0.bazel
index 5fa2018..ab0bf49 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-date-0.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-date-0.8.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_date",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -82,6 +82,6 @@
         "@cui__bstr-1.6.0//:bstr",
         "@cui__itoa-1.0.8//:itoa",
         "@cui__thiserror-1.0.50//:thiserror",
-        "@cui__time-0.3.30//:time",
+        "@cui__time-0.3.36//:time",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-diff-0.36.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-diff-0.36.0.bazel
index f04c0f4..8a8b5a3 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-diff-0.36.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-diff-0.36.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_diff",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-discover-0.25.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-discover-0.25.0.bazel
index 0b689d1..0e2baad 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-discover-0.25.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-discover-0.25.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_discover",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-features-0.35.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-features-0.35.0.bazel
index 7adcd38..fa1f37c 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-features-0.35.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-features-0.35.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_features",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -97,7 +97,7 @@
         "@cui__gix-hash-0.13.1//:gix_hash",
         "@cui__gix-trace-0.1.3//:gix_trace",
         "@cui__jwalk-0.8.1//:jwalk",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__parking_lot-0.12.1//:parking_lot",
         "@cui__prodash-26.2.2//:prodash",
         "@cui__sha1_smol-1.0.0//:sha1_smol",
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-filter-0.5.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-filter-0.5.0.bazel
index 0b3a074..0aac350 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-filter-0.5.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-filter-0.5.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_filter",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     aliases = {
         "@cui__gix-packetline-blocking-0.16.6//:gix_packetline_blocking": "gix_packetline",
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-fs-0.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-fs-0.7.0.bazel
index 2ba076f..113dcbc 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-fs-0.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-fs-0.7.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_fs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-glob-0.13.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-glob-0.13.0.bazel
index 67b25d9..07cda8f 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-glob-0.13.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-glob-0.13.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_glob",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-hash-0.13.1.bazel b/crate_universe/3rdparty/crates/BUILD.gix-hash-0.13.1.bazel
index 3affd7e..0d6270e 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-hash-0.13.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-hash-0.13.1.bazel
@@ -14,7 +14,7 @@
     name = "gix_hash",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-hashtable-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-hashtable-0.4.0.bazel
index a1f966b..5c8c837 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-hashtable-0.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-hashtable-0.4.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_hashtable",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-ignore-0.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-ignore-0.8.0.bazel
index 2f66df8..732532c 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-ignore-0.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-ignore-0.8.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_ignore",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-index-0.25.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-index-0.25.0.bazel
index c14d1d6..c3946d6 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-index-0.25.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-index-0.25.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_index",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-lock-10.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-lock-10.0.0.bazel
index 51aec87..35ea950 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-lock-10.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-lock-10.0.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_lock",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-macros-0.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-macros-0.1.0.bazel
index 754241c..3b2fae0 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-macros-0.1.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-macros-0.1.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_macros",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-negotiate-0.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-negotiate-0.8.0.bazel
index 248a2be..6d85910 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-negotiate-0.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-negotiate-0.8.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_negotiate",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-object-0.37.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-object-0.37.0.bazel
index e7ed7a4..e833c81 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-object-0.37.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-object-0.37.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_object",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-odb-0.53.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-odb-0.53.0.bazel
index 0379b4f..c44bb6d 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-odb-0.53.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-odb-0.53.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_odb",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-pack-0.43.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-pack-0.43.0.bazel
index 27e6284..3fc20e7 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-pack-0.43.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-pack-0.43.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_pack",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-packetline-0.16.7.bazel b/crate_universe/3rdparty/crates/BUILD.gix-packetline-0.16.7.bazel
index 3fd12fd..3ea9fef 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-packetline-0.16.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-packetline-0.16.7.bazel
@@ -14,7 +14,7 @@
     name = "gix_packetline",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-packetline-blocking-0.16.6.bazel b/crate_universe/3rdparty/crates/BUILD.gix-packetline-blocking-0.16.6.bazel
index bcc0cc6..db89708 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-packetline-blocking-0.16.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-packetline-blocking-0.16.6.bazel
@@ -14,7 +14,7 @@
     name = "gix_packetline_blocking",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-path-0.10.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-path-0.10.0.bazel
index 449ee64..2ec08c4 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-path-0.10.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-path-0.10.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_path",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -81,7 +81,7 @@
     deps = [
         "@cui__bstr-1.6.0//:bstr",
         "@cui__gix-trace-0.1.3//:gix_trace",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__thiserror-1.0.50//:thiserror",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-pathspec-0.3.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-pathspec-0.3.0.bazel
index 8387e9e..4b5aa88 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-pathspec-0.3.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-pathspec-0.3.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_pathspec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-prompt-0.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-prompt-0.7.0.bazel
index 5ec0771..bb71da8 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-prompt-0.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-prompt-0.7.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_prompt",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-protocol-0.40.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-protocol-0.40.0.bazel
index 058e478..f4356c3 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-protocol-0.40.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-protocol-0.40.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_protocol",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-quote-0.4.7.bazel b/crate_universe/3rdparty/crates/BUILD.gix-quote-0.4.7.bazel
index 840763b..8d1b3b5 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-quote-0.4.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-quote-0.4.7.bazel
@@ -14,7 +14,7 @@
     name = "gix_quote",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-ref-0.37.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-ref-0.37.0.bazel
index 759c286..617df33 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-ref-0.37.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-ref-0.37.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_ref",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-refspec-0.18.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-refspec-0.18.0.bazel
index 8638081..71d59d7 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-refspec-0.18.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-refspec-0.18.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_refspec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-revision-0.22.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-revision-0.22.0.bazel
index a6c4955..c60b7b1 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-revision-0.22.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-revision-0.22.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_revision",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-revwalk-0.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-revwalk-0.8.0.bazel
index 8154bba..7364229 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-revwalk-0.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-revwalk-0.8.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_revwalk",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-sec-0.10.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-sec-0.10.0.bazel
index 1c71dac..b0099e5 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-sec-0.10.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-sec-0.10.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_sec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-submodule-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-submodule-0.4.0.bazel
index fe042a4..e738f6e 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-submodule-0.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-submodule-0.4.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_submodule",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-tempfile-10.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-tempfile-10.0.0.bazel
index 781c2dd..2aded53 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-tempfile-10.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-tempfile-10.0.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_tempfile",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -80,7 +80,7 @@
     version = "10.0.0",
     deps = [
         "@cui__gix-fs-0.7.0//:gix_fs",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__parking_lot-0.12.1//:parking_lot",
         "@cui__tempfile-3.8.1//:tempfile",
     ] + select({
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-trace-0.1.3.bazel b/crate_universe/3rdparty/crates/BUILD.gix-trace-0.1.3.bazel
index bc76b63..570484f 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-trace-0.1.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-trace-0.1.3.bazel
@@ -14,7 +14,7 @@
     name = "gix_trace",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-transport-0.37.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-transport-0.37.0.bazel
index 3521c0e..dfb12cc 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-transport-0.37.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-transport-0.37.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_transport",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-traverse-0.33.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-traverse-0.33.0.bazel
index 62b7a5e..ae5f2d0 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-traverse-0.33.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-traverse-0.33.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_traverse",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-url-0.24.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-url-0.24.0.bazel
index fbb74c9..f3275c6 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-url-0.24.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-url-0.24.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_url",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -84,6 +84,6 @@
         "@cui__gix-path-0.10.0//:gix_path",
         "@cui__home-0.5.5//:home",
         "@cui__thiserror-1.0.50//:thiserror",
-        "@cui__url-2.4.0//:url",
+        "@cui__url-2.5.2//:url",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-utils-0.1.5.bazel b/crate_universe/3rdparty/crates/BUILD.gix-utils-0.1.5.bazel
index 84058d0..2b9c26a 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-utils-0.1.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-utils-0.1.5.bazel
@@ -14,7 +14,7 @@
     name = "gix_utils",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-validate-0.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-validate-0.8.0.bazel
index be1e320..97d62c4 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-validate-0.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-validate-0.8.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_validate",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.gix-worktree-0.26.0.bazel b/crate_universe/3rdparty/crates/BUILD.gix-worktree-0.26.0.bazel
index c138904..fb426ce 100644
--- a/crate_universe/3rdparty/crates/BUILD.gix-worktree-0.26.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.gix-worktree-0.26.0.bazel
@@ -14,7 +14,7 @@
     name = "gix_worktree",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.globset-0.4.11.bazel b/crate_universe/3rdparty/crates/BUILD.globset-0.4.11.bazel
index 32d2faa..cc92e4c 100644
--- a/crate_universe/3rdparty/crates/BUILD.globset-0.4.11.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.globset-0.4.11.bazel
@@ -14,7 +14,7 @@
     name = "globset",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel b/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
index 1a4c289..f91ad88 100644
--- a/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
@@ -14,7 +14,7 @@
     name = "globwalk",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.hashbrown-0.14.3.bazel b/crate_universe/3rdparty/crates/BUILD.hashbrown-0.14.3.bazel
index 669d231..299ae77 100644
--- a/crate_universe/3rdparty/crates/BUILD.hashbrown-0.14.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.hashbrown-0.14.3.bazel
@@ -14,7 +14,7 @@
     name = "hashbrown",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.heck-0.4.1.bazel b/crate_universe/3rdparty/crates/BUILD.heck-0.4.1.bazel
index 0a5ca83..967c098 100644
--- a/crate_universe/3rdparty/crates/BUILD.heck-0.4.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.heck-0.4.1.bazel
@@ -14,7 +14,7 @@
     name = "heck",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.3.2.bazel b/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.3.2.bazel
index b4061d1..16f1fdf 100644
--- a/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.3.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.3.2.bazel
@@ -14,7 +14,7 @@
     name = "hermit_abi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel b/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
index 38b223e..b818dea 100644
--- a/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
@@ -14,7 +14,7 @@
     name = "hex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.home-0.5.5.bazel b/crate_universe/3rdparty/crates/BUILD.home-0.5.5.bazel
index 6d3121d..01dbfcb 100644
--- a/crate_universe/3rdparty/crates/BUILD.home-0.5.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.home-0.5.5.bazel
@@ -14,7 +14,7 @@
     name = "home",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.humansize-2.1.3.bazel b/crate_universe/3rdparty/crates/BUILD.humansize-2.1.3.bazel
index 0de39d6..6de3223 100644
--- a/crate_universe/3rdparty/crates/BUILD.humansize-2.1.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.humansize-2.1.3.bazel
@@ -14,7 +14,7 @@
     name = "humansize",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.iana-time-zone-0.1.57.bazel b/crate_universe/3rdparty/crates/BUILD.iana-time-zone-0.1.57.bazel
index 28874ce..fe3084b 100644
--- a/crate_universe/3rdparty/crates/BUILD.iana-time-zone-0.1.57.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.iana-time-zone-0.1.57.bazel
@@ -14,7 +14,7 @@
     name = "iana_time_zone",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.iana-time-zone-haiku-0.1.2.bazel b/crate_universe/3rdparty/crates/BUILD.iana-time-zone-haiku-0.1.2.bazel
index 5cf23f2..afab375 100644
--- a/crate_universe/3rdparty/crates/BUILD.iana-time-zone-haiku-0.1.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.iana-time-zone-haiku-0.1.2.bazel
@@ -15,7 +15,7 @@
     name = "iana_time_zone_haiku",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "iana-time-zone-haiku_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "iana-time-zone-haiku",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -124,6 +125,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":iana-time-zone-haiku_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.idna-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.idna-0.4.0.bazel
deleted file mode 100644
index 2e5e85b..0000000
--- a/crate_universe/3rdparty/crates/BUILD.idna-0.4.0.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "idna",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "alloc",
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=idna",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "0.4.0",
-    deps = [
-        "@cui__unicode-bidi-0.3.13//:unicode_bidi",
-        "@cui__unicode-normalization-0.1.22//:unicode_normalization",
-    ],
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.idna-0.5.0.bazel b/crate_universe/3rdparty/crates/BUILD.idna-0.5.0.bazel
new file mode 100644
index 0000000..a7be1b5
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.idna-0.5.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "idna",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "alloc",
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=idna",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "0.5.0",
+    deps = [
+        "@cui__unicode-bidi-0.3.13//:unicode_bidi",
+        "@cui__unicode-normalization-0.1.22//:unicode_normalization",
+    ],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel b/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
index 2c8b154..63b0261 100644
--- a/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
@@ -14,7 +14,7 @@
     name = "ignore",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.indexmap-2.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.indexmap-2.1.0.bazel
index 2a28799..1ebdfe3 100644
--- a/crate_universe/3rdparty/crates/BUILD.indexmap-2.1.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.indexmap-2.1.0.bazel
@@ -14,7 +14,7 @@
     name = "indexmap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.indoc-2.0.4.bazel b/crate_universe/3rdparty/crates/BUILD.indoc-2.0.4.bazel
index a83db95..65b6fa8 100644
--- a/crate_universe/3rdparty/crates/BUILD.indoc-2.0.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.indoc-2.0.4.bazel
@@ -14,7 +14,7 @@
     name = "indoc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel b/crate_universe/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
index 3484d23..a63e06d 100644
--- a/crate_universe/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.io-lifetimes-1.0.11.bazel
@@ -15,7 +15,7 @@
     name = "io_lifetimes",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,116 +90,116 @@
         "@cui__io-lifetimes-1.0.11//:build_script_build",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-darwin
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios-sim
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-fuchsia
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-linux-android
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
-            "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@cui__windows-sys-0.48.0//:windows_sys",  # aarch64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-nto-qnx710
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # arm-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # armv7-linux-androideabi
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # armv7-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # i686-linux-android
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
-            "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@cui__windows-sys-0.48.0//:windows_sys",  # i686-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # powerpc-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # riscv32imc-unknown-none-elf
         ],
         "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # riscv64gc-unknown-none-elf
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # s390x-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:thumbv7em-none-eabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # thumbv7em-none-eabi
         ],
         "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # thumbv8m.main-none-eabi
         ],
         "@rules_rust//rust/platform:wasm32-unknown-unknown": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # wasm32-unknown-unknown
         ],
         "@rules_rust//rust/platform:wasm32-wasi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # wasm32-wasi
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-linux-android
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
-            "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
+            "@cui__windows-sys-0.48.0//:windows_sys",  # x86_64-pc-windows-msvc
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
-            "@cui__libc-0.2.149//:libc",  # cfg(not(windows))
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-none
         ],
         "//conditions:default": [],
     }),
 )
 
 cargo_build_script(
-    name = "io-lifetimes_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "close",
@@ -223,6 +223,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "io-lifetimes",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -239,6 +240,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":io-lifetimes_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel b/crate_universe/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
index 5615c10..0d3f870 100644
--- a/crate_universe/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.is-terminal-0.4.7.bazel
@@ -14,7 +14,7 @@
     name = "is_terminal",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.itertools-0.12.0.bazel b/crate_universe/3rdparty/crates/BUILD.itertools-0.12.0.bazel
index 9c1273c..cc41fdf 100644
--- a/crate_universe/3rdparty/crates/BUILD.itertools-0.12.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.itertools-0.12.0.bazel
@@ -14,7 +14,7 @@
     name = "itertools",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.itoa-1.0.8.bazel b/crate_universe/3rdparty/crates/BUILD.itoa-1.0.8.bazel
index 9136680..4a3d369 100644
--- a/crate_universe/3rdparty/crates/BUILD.itoa-1.0.8.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.itoa-1.0.8.bazel
@@ -14,7 +14,7 @@
     name = "itoa",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.js-sys-0.3.64.bazel b/crate_universe/3rdparty/crates/BUILD.js-sys-0.3.64.bazel
index de4e55a..94c5c1f 100644
--- a/crate_universe/3rdparty/crates/BUILD.js-sys-0.3.64.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.js-sys-0.3.64.bazel
@@ -14,7 +14,7 @@
     name = "js_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.jwalk-0.8.1.bazel b/crate_universe/3rdparty/crates/BUILD.jwalk-0.8.1.bazel
index a291838..aee5505 100644
--- a/crate_universe/3rdparty/crates/BUILD.jwalk-0.8.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.jwalk-0.8.1.bazel
@@ -14,7 +14,7 @@
     name = "jwalk",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
index 2688613..27ff25a 100644
--- a/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -14,7 +14,7 @@
     name = "lazy_static",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.libc-0.2.149.bazel b/crate_universe/3rdparty/crates/BUILD.libc-0.2.149.bazel
index 07336ea..c13b773 100644
--- a/crate_universe/3rdparty/crates/BUILD.libc-0.2.149.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.libc-0.2.149.bazel
@@ -15,7 +15,7 @@
     name = "libc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -52,7 +52,7 @@
             "extra_traits",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "extra_traits",  # aarch64-unknown-nixos-gnu
+            "extra_traits",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "extra_traits",  # aarch64-unknown-nto-qnx710
@@ -118,7 +118,7 @@
             "extra_traits",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "extra_traits",  # x86_64-unknown-nixos-gnu
+            "extra_traits",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "extra_traits",  # x86_64-unknown-none
@@ -181,10 +181,10 @@
 )
 
 cargo_build_script(
-    name = "libc_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -209,7 +209,7 @@
             "extra_traits",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "extra_traits",  # aarch64-unknown-nixos-gnu
+            "extra_traits",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "extra_traits",  # aarch64-unknown-nto-qnx710
@@ -275,7 +275,7 @@
             "extra_traits",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "extra_traits",  # x86_64-unknown-nixos-gnu
+            "extra_traits",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "extra_traits",  # x86_64-unknown-none
@@ -297,6 +297,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "libc",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -313,6 +314,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":libc_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.libm-0.2.7.bazel b/crate_universe/3rdparty/crates/BUILD.libm-0.2.7.bazel
index 715d436..c22fa61 100644
--- a/crate_universe/3rdparty/crates/BUILD.libm-0.2.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.libm-0.2.7.bazel
@@ -15,7 +15,7 @@
     name = "libm",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -88,10 +88,10 @@
 )
 
 cargo_build_script(
-    name = "libm_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -111,6 +111,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "libm",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -127,6 +128,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":libm_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
index 4dff3b8..3fe056f 100644
--- a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel
@@ -14,7 +14,7 @@
     name = "linux_raw_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -37,7 +37,7 @@
             "errno",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "errno",  # aarch64-unknown-nixos-gnu
+            "errno",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
             "errno",  # arm-unknown-linux-gnueabi
@@ -52,7 +52,7 @@
             "errno",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "errno",  # x86_64-unknown-nixos-gnu
+            "errno",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel
index 295e54d..5fba98e 100644
--- a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel
@@ -14,7 +14,7 @@
     name = "linux_raw_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -38,8 +38,8 @@
             "errno",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "elf",  # aarch64-unknown-nixos-gnu
-            "errno",  # aarch64-unknown-nixos-gnu
+            "elf",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "errno",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
             "elf",  # arm-unknown-linux-gnueabi
@@ -58,8 +58,8 @@
             "errno",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "elf",  # x86_64-unknown-nixos-gnu
-            "errno",  # x86_64-unknown-nixos-gnu
+            "elf",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "errno",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.lock_api-0.4.11.bazel b/crate_universe/3rdparty/crates/BUILD.lock_api-0.4.11.bazel
index 91a3518..82994ad 100644
--- a/crate_universe/3rdparty/crates/BUILD.lock_api-0.4.11.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.lock_api-0.4.11.bazel
@@ -15,7 +15,7 @@
     name = "lock_api",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "lock_api_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "atomic_usize",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "lock_api",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -133,6 +134,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":lock_api_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.log-0.4.19.bazel b/crate_universe/3rdparty/crates/BUILD.log-0.4.19.bazel
index 2dbceeb..9bf1f43 100644
--- a/crate_universe/3rdparty/crates/BUILD.log-0.4.19.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.log-0.4.19.bazel
@@ -14,7 +14,7 @@
     name = "log",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel b/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
index d8f1f68..5d99540 100644
--- a/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
@@ -14,7 +14,7 @@
     name = "maplit",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.maybe-async-0.2.7.bazel b/crate_universe/3rdparty/crates/BUILD.maybe-async-0.2.7.bazel
index d53f258..6858229 100644
--- a/crate_universe/3rdparty/crates/BUILD.maybe-async-0.2.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.maybe-async-0.2.7.bazel
@@ -14,7 +14,7 @@
     name = "maybe_async",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.memchr-2.6.4.bazel b/crate_universe/3rdparty/crates/BUILD.memchr-2.6.4.bazel
index 3f21aed..b7ec2f7 100644
--- a/crate_universe/3rdparty/crates/BUILD.memchr-2.6.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.memchr-2.6.4.bazel
@@ -14,7 +14,7 @@
     name = "memchr",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.memmap2-0.7.1.bazel b/crate_universe/3rdparty/crates/BUILD.memmap2-0.7.1.bazel
index 676fcfb..50123d2 100644
--- a/crate_universe/3rdparty/crates/BUILD.memmap2-0.7.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.memmap2-0.7.1.bazel
@@ -14,7 +14,7 @@
     name = "memmap2",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.memoffset-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.memoffset-0.9.0.bazel
index 85f37dc..23f54ff 100644
--- a/crate_universe/3rdparty/crates/BUILD.memoffset-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.memoffset-0.9.0.bazel
@@ -15,7 +15,7 @@
     name = "memoffset",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -88,10 +88,10 @@
 )
 
 cargo_build_script(
-    name = "memoffset_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -111,6 +111,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "memoffset",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":memoffset_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.miniz_oxide-0.7.1.bazel b/crate_universe/3rdparty/crates/BUILD.miniz_oxide-0.7.1.bazel
index 297b832..5348ece 100644
--- a/crate_universe/3rdparty/crates/BUILD.miniz_oxide-0.7.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.miniz_oxide-0.7.1.bazel
@@ -14,7 +14,7 @@
     name = "miniz_oxide",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.normpath-1.1.1.bazel b/crate_universe/3rdparty/crates/BUILD.normpath-1.1.1.bazel
index 0fa263a..e6d93e3 100644
--- a/crate_universe/3rdparty/crates/BUILD.normpath-1.1.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.normpath-1.1.1.bazel
@@ -14,7 +14,7 @@
     name = "normpath",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.nu-ansi-term-0.46.0.bazel b/crate_universe/3rdparty/crates/BUILD.nu-ansi-term-0.46.0.bazel
index 24a7ed0..759e754 100644
--- a/crate_universe/3rdparty/crates/BUILD.nu-ansi-term-0.46.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.nu-ansi-term-0.46.0.bazel
@@ -14,7 +14,7 @@
     name = "nu_ansi_term",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel b/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
index aaedd29..96e9b8a 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
@@ -14,7 +14,7 @@
     name = "num",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel b/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
index 2a1ebfe..5ffe0a3 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
@@ -14,7 +14,7 @@
     name = "num_bigint",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel b/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
index cdbdc8f..cd8787d 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
@@ -14,7 +14,7 @@
     name = "num_complex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.num-conv-0.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.num-conv-0.1.0.bazel
new file mode 100644
index 0000000..24606a7
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.num-conv-0.1.0.bazel
@@ -0,0 +1,81 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "num_conv",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_root = "src/lib.rs",
+    edition = "2021",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=num-conv",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "0.1.0",
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel b/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
index 41b380a..53a81d1 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
@@ -15,7 +15,7 @@
     name = "num_integer",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "num-integer_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "num-integer",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -133,6 +134,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":num-integer_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel b/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel
index 4126830..13e94e4 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel
@@ -15,7 +15,7 @@
     name = "num_iter",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -91,10 +91,10 @@
 )
 
 cargo_build_script(
-    name = "num-iter_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -115,6 +115,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "num-iter",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -134,6 +135,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":num-iter_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel b/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
index 70f0cae..250a40a 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
@@ -14,7 +14,7 @@
     name = "num_rational",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel b/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
index ee292fc..e4e8cf8 100644
--- a/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
@@ -15,7 +15,7 @@
     name = "num_traits",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -89,10 +89,10 @@
 )
 
 cargo_build_script(
-    name = "num-traits_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -113,6 +113,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "num-traits",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -132,6 +133,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":num-traits_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.num_threads-0.1.6.bazel b/crate_universe/3rdparty/crates/BUILD.num_threads-0.1.6.bazel
index dba4493..2e84a5b 100644
--- a/crate_universe/3rdparty/crates/BUILD.num_threads-0.1.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.num_threads-0.1.6.bazel
@@ -14,7 +14,7 @@
     name = "num_threads",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.once_cell-1.18.0.bazel b/crate_universe/3rdparty/crates/BUILD.once_cell-1.18.0.bazel
deleted file mode 100644
index 712fce0..0000000
--- a/crate_universe/3rdparty/crates/BUILD.once_cell-1.18.0.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2021",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=once_cell",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "1.18.0",
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.once_cell-1.19.0.bazel b/crate_universe/3rdparty/crates/BUILD.once_cell-1.19.0.bazel
new file mode 100644
index 0000000..187274a
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.once_cell-1.19.0.bazel
@@ -0,0 +1,87 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2021",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=once_cell",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "1.19.0",
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.overload-0.1.1.bazel b/crate_universe/3rdparty/crates/BUILD.overload-0.1.1.bazel
index 235aac2..7d477fd 100644
--- a/crate_universe/3rdparty/crates/BUILD.overload-0.1.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.overload-0.1.1.bazel
@@ -14,7 +14,7 @@
     name = "overload",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.parking_lot-0.12.1.bazel b/crate_universe/3rdparty/crates/BUILD.parking_lot-0.12.1.bazel
index c4f565a..e3d0cd3 100644
--- a/crate_universe/3rdparty/crates/BUILD.parking_lot-0.12.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.parking_lot-0.12.1.bazel
@@ -14,7 +14,7 @@
     name = "parking_lot",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.parking_lot_core-0.9.9.bazel b/crate_universe/3rdparty/crates/BUILD.parking_lot_core-0.9.9.bazel
index e5bd179..bb5f7e4 100644
--- a/crate_universe/3rdparty/crates/BUILD.parking_lot_core-0.9.9.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.parking_lot_core-0.9.9.bazel
@@ -15,7 +15,7 @@
     name = "parking_lot_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -170,10 +170,10 @@
 )
 
 cargo_build_script(
-    name = "parking_lot_core_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -190,6 +190,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "parking_lot_core",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -206,6 +207,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":parking_lot_core_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel b/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
index 75356b0..0581481 100644
--- a/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
@@ -14,7 +14,7 @@
     name = "parse_zoneinfo",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel b/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
index 8e25de0..58c44f5 100644
--- a/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "pathdiff",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.0.bazel b/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.0.bazel
deleted file mode 100644
index 3cd8908..0000000
--- a/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.0.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "percent_encoding",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "alloc",
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=percent-encoding",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "2.3.0",
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.1.bazel b/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.1.bazel
new file mode 100644
index 0000000..774689a
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.3.1.bazel
@@ -0,0 +1,86 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "percent_encoding",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "alloc",
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=percent-encoding",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "2.3.1",
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.pest-2.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.pest-2.7.0.bazel
index d94278a..6a20503 100644
--- a/crate_universe/3rdparty/crates/BUILD.pest-2.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pest-2.7.0.bazel
@@ -14,7 +14,7 @@
     name = "pest",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.pest_derive-2.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.pest_derive-2.7.0.bazel
index 61d7802..153d0f8 100644
--- a/crate_universe/3rdparty/crates/BUILD.pest_derive-2.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pest_derive-2.7.0.bazel
@@ -14,7 +14,7 @@
     name = "pest_derive",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.pest_generator-2.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.pest_generator-2.7.0.bazel
index 8b77d8a..182aba0 100644
--- a/crate_universe/3rdparty/crates/BUILD.pest_generator-2.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pest_generator-2.7.0.bazel
@@ -14,7 +14,7 @@
     name = "pest_generator",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.pest_meta-2.7.0.bazel b/crate_universe/3rdparty/crates/BUILD.pest_meta-2.7.0.bazel
index 5578ae6..679bcf5 100644
--- a/crate_universe/3rdparty/crates/BUILD.pest_meta-2.7.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pest_meta-2.7.0.bazel
@@ -14,7 +14,7 @@
     name = "pest_meta",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -82,7 +82,7 @@
     }),
     version = "2.7.0",
     deps = [
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__pest-2.7.0//:pest",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.phf-0.11.2.bazel b/crate_universe/3rdparty/crates/BUILD.phf-0.11.2.bazel
index 848ddbc..797c06e 100644
--- a/crate_universe/3rdparty/crates/BUILD.phf-0.11.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.phf-0.11.2.bazel
@@ -14,7 +14,7 @@
     name = "phf",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.11.2.bazel b/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.11.2.bazel
index d3a9d84..0194caa 100644
--- a/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.11.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.11.2.bazel
@@ -14,7 +14,7 @@
     name = "phf_codegen",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.phf_generator-0.11.2.bazel b/crate_universe/3rdparty/crates/BUILD.phf_generator-0.11.2.bazel
index 8d42ea1..e412728 100644
--- a/crate_universe/3rdparty/crates/BUILD.phf_generator-0.11.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.phf_generator-0.11.2.bazel
@@ -14,7 +14,7 @@
     name = "phf_generator",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.phf_shared-0.11.2.bazel b/crate_universe/3rdparty/crates/BUILD.phf_shared-0.11.2.bazel
index f1dadf0..9ffb85f 100644
--- a/crate_universe/3rdparty/crates/BUILD.phf_shared-0.11.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.phf_shared-0.11.2.bazel
@@ -14,7 +14,7 @@
     name = "phf_shared",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.pin-project-lite-0.2.13.bazel b/crate_universe/3rdparty/crates/BUILD.pin-project-lite-0.2.13.bazel
index e0afaac..6bdd039 100644
--- a/crate_universe/3rdparty/crates/BUILD.pin-project-lite-0.2.13.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.pin-project-lite-0.2.13.bazel
@@ -14,7 +14,7 @@
     name = "pin_project_lite",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.powerfmt-0.2.0.bazel b/crate_universe/3rdparty/crates/BUILD.powerfmt-0.2.0.bazel
index e2831c2..6346804 100644
--- a/crate_universe/3rdparty/crates/BUILD.powerfmt-0.2.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.powerfmt-0.2.0.bazel
@@ -14,7 +14,7 @@
     name = "powerfmt",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.17.bazel b/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.17.bazel
index 9ab552b..39b4a6c 100644
--- a/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.17.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.17.bazel
@@ -14,7 +14,7 @@
     name = "ppv_lite86",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.64.bazel b/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.64.bazel
index d60c5dc..357edeb 100644
--- a/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.64.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.64.bazel
@@ -15,7 +15,7 @@
     name = "proc_macro2",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "proc-macro2_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "proc-macro2",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":proc-macro2_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.prodash-26.2.2.bazel b/crate_universe/3rdparty/crates/BUILD.prodash-26.2.2.bazel
index a0f4b15..7557fc9 100644
--- a/crate_universe/3rdparty/crates/BUILD.prodash-26.2.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.prodash-26.2.2.bazel
@@ -14,7 +14,7 @@
     name = "prodash",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.quote-1.0.29.bazel b/crate_universe/3rdparty/crates/BUILD.quote-1.0.29.bazel
index 30c9a8b..8bcda18 100644
--- a/crate_universe/3rdparty/crates/BUILD.quote-1.0.29.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.quote-1.0.29.bazel
@@ -15,7 +15,7 @@
     name = "quote",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -90,10 +90,10 @@
 )
 
 cargo_build_script(
-    name = "quote_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -114,6 +114,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "quote",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -130,6 +131,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":quote_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel b/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
index d9506bd..3556ee2 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
@@ -14,7 +14,7 @@
     name = "rand",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,87 +85,87 @@
     version = "0.4.6",
     deps = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-darwin
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios-sim
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
             "@cui__fuchsia-cprng-0.1.1//:fuchsia_cprng",  # cfg(target_os = "fuchsia")
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-fuchsia
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-linux-android
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
             "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-nto-qnx710
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # arm-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # armv7-linux-androideabi
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # armv7-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-linux-android
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
             "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # powerpc-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # s390x-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
             "@cui__fuchsia-cprng-0.1.1//:fuchsia_cprng",  # cfg(target_os = "fuchsia")
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-linux-android
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
             "@cui__winapi-0.3.9//:winapi",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel b/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
index cf42a50..aeb49da 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
@@ -14,7 +14,7 @@
     name = "rand",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -93,76 +93,76 @@
         "@cui__rand_core-0.6.4//:rand_core",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-darwin
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios-sim
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-fuchsia
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-linux-android
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-nto-qnx710
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # arm-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # armv7-linux-androideabi
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # armv7-unknown-linux-gnueabi
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-linux-android
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # powerpc-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # s390x-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-linux-android
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(unix)
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
diff --git a/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel b/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
index 857a673..378f6ed 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "rand_chacha",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel b/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
index ecca760..a917bdb 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "rand_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel b/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
index 5a20bb3..fbc1304 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
@@ -14,7 +14,7 @@
     name = "rand_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.4.bazel b/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.4.bazel
index 904dcfb..84e80d3 100644
--- a/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.4.bazel
@@ -14,7 +14,7 @@
     name = "rand_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rayon-1.8.0.bazel b/crate_universe/3rdparty/crates/BUILD.rayon-1.8.0.bazel
index a1279e3..f364aab 100644
--- a/crate_universe/3rdparty/crates/BUILD.rayon-1.8.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rayon-1.8.0.bazel
@@ -14,7 +14,7 @@
     name = "rayon",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rayon-core-1.12.0.bazel b/crate_universe/3rdparty/crates/BUILD.rayon-core-1.12.0.bazel
index 7d7ad04..4d1faba 100644
--- a/crate_universe/3rdparty/crates/BUILD.rayon-core-1.12.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rayon-core-1.12.0.bazel
@@ -15,7 +15,7 @@
     name = "rayon_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -87,10 +87,10 @@
 )
 
 cargo_build_script(
-    name = "rayon-core_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -108,6 +108,7 @@
     ),
     edition = "2021",
     links = "rayon-core",
+    pkg_name = "rayon-core",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -124,6 +125,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":rayon-core_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
index 1b74522..0d5510e 100644
--- a/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
@@ -14,7 +14,7 @@
     name = "rdrand",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.3.5.bazel b/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.3.5.bazel
index 75cf539..de4da3d 100644
--- a/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.3.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.3.5.bazel
@@ -14,7 +14,7 @@
     name = "syscall",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.4.1.bazel b/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.4.1.bazel
index 366b56e..6226f25 100644
--- a/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.4.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.4.1.bazel
@@ -14,7 +14,7 @@
     name = "syscall",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.regex-1.10.2.bazel b/crate_universe/3rdparty/crates/BUILD.regex-1.10.2.bazel
index 040eec1..f0661e4 100644
--- a/crate_universe/3rdparty/crates/BUILD.regex-1.10.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.regex-1.10.2.bazel
@@ -14,7 +14,7 @@
     name = "regex",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.regex-automata-0.3.3.bazel b/crate_universe/3rdparty/crates/BUILD.regex-automata-0.3.3.bazel
index 5b53cc5..c18b179 100644
--- a/crate_universe/3rdparty/crates/BUILD.regex-automata-0.3.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.regex-automata-0.3.3.bazel
@@ -14,7 +14,7 @@
     name = "regex_automata",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.regex-automata-0.4.3.bazel b/crate_universe/3rdparty/crates/BUILD.regex-automata-0.4.3.bazel
index dc2c91d..fd534c4 100644
--- a/crate_universe/3rdparty/crates/BUILD.regex-automata-0.4.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.regex-automata-0.4.3.bazel
@@ -14,7 +14,7 @@
     name = "regex_automata",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.8.2.bazel b/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.8.2.bazel
index e6593b5..4bb3267 100644
--- a/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.8.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.8.2.bazel
@@ -14,7 +14,7 @@
     name = "regex_syntax",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
index 4323246..ff72aff 100644
--- a/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
@@ -14,7 +14,7 @@
     name = "rustc_hash",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.25.bazel b/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.25.bazel
index 87c2f1b..2c9f617 100644
--- a/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.25.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.25.bazel
@@ -14,7 +14,7 @@
     name = "rustc_serialize",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.rustix-0.37.23.bazel b/crate_universe/3rdparty/crates/BUILD.rustix-0.37.23.bazel
index 9fe7b56..196d581 100644
--- a/crate_universe/3rdparty/crates/BUILD.rustix-0.37.23.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rustix-0.37.23.bazel
@@ -15,7 +15,7 @@
     name = "rustix",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     aliases = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": {
@@ -174,27 +174,23 @@
     deps = [
         "@cui__bitflags-1.3.2//:bitflags",
         "@cui__io-lifetimes-1.0.11//:io_lifetimes",
+        "@cui__libc-0.2.149//:libc",
         "@cui__rustix-0.37.23//:build_script_build",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
@@ -202,37 +198,29 @@
             "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
@@ -241,61 +229,47 @@
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:thumbv7em-none-eabi": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:wasm32-unknown-unknown": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:wasm32-wasi": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
@@ -304,29 +278,25 @@
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
             "@cui__linux-raw-sys-0.3.8//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64")))))
         ],
         "@rules_rust//rust/platform:x86_64-unknown-none": [
             "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"), all(target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "powerpc64", target_arch = "riscv64", target_arch = "mips", target_arch = "mips64"))))))))
         ],
         "//conditions:default": [],
     }),
 )
 
 cargo_build_script(
-    name = "rustix_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -351,6 +321,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "rustix",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -367,6 +338,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":rustix_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.rustix-0.38.21.bazel b/crate_universe/3rdparty/crates/BUILD.rustix-0.38.21.bazel
index 6ef4583..0ed48f2 100644
--- a/crate_universe/3rdparty/crates/BUILD.rustix-0.38.21.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.rustix-0.38.21.bazel
@@ -15,47 +15,47 @@
     name = "rustix",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     aliases = select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-apple-darwin, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:aarch64-apple-ios": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-apple-ios, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-apple-ios-sim, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:aarch64-fuchsia": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-fuchsia, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:aarch64-linux-android": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-linux-android, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(windows)
         },
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # aarch64-unknown-nto-qnx710, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:armv7-linux-androideabi": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # armv7-linux-androideabi, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:i686-apple-darwin": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-apple-darwin
         },
         "@rules_rust//rust/platform:i686-linux-android": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-linux-android
         },
         "@rules_rust//rust/platform:i686-pc-windows-msvc": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(windows)
         },
         "@rules_rust//rust/platform:i686-unknown-freebsd": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-unknown-freebsd
         },
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), powerpc-unknown-linux-gnu
         },
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
@@ -64,7 +64,7 @@
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), s390x-unknown-linux-gnu
         },
         "@rules_rust//rust/platform:thumbv7em-none-eabi": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
@@ -76,25 +76,25 @@
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         },
         "@rules_rust//rust/platform:wasm32-wasi": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), wasm32-wasi
         },
         "@rules_rust//rust/platform:x86_64-apple-darwin": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-darwin
         },
         "@rules_rust//rust/platform:x86_64-apple-ios": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-ios
         },
         "@rules_rust//rust/platform:x86_64-fuchsia": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-fuchsia
         },
         "@rules_rust//rust/platform:x86_64-linux-android": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-linux-android
         },
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(windows)
         },
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": {
-            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-unknown-freebsd
         },
         "@rules_rust//rust/platform:x86_64-unknown-none": {
             "@cui__errno-0.3.1//:errno": "libc_errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
@@ -139,7 +139,7 @@
             "termios",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "termios",  # aarch64-unknown-nixos-gnu
+            "termios",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "termios",  # aarch64-unknown-nto-qnx710
@@ -190,7 +190,7 @@
             "termios",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "termios",  # x86_64-unknown-nixos-gnu
+            "termios",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
@@ -249,24 +249,24 @@
         "@cui__rustix-0.38.21//:build_script_build",
     ] + select({
         "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-apple-darwin, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-darwin, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-apple-ios, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-apple-ios-sim, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios-sim, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-fuchsia, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-fuchsia, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-linux-android, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-linux-android, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
@@ -280,27 +280,27 @@
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # aarch64-unknown-nto-qnx710, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-nto-qnx710, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))
         ],
         "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # armv7-linux-androideabi, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__libc-0.2.149//:libc",  # armv7-linux-androideabi, cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))
         ],
         "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-apple-darwin
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-apple-darwin
         ],
         "@rules_rust//rust/platform:i686-linux-android": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-linux-android
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-linux-android
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:i686-pc-windows-msvc": [
@@ -308,15 +308,15 @@
             "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-unknown-freebsd
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), i686-unknown-freebsd
         ],
         "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))
         ],
         "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), powerpc-unknown-linux-gnu
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), powerpc-unknown-linux-gnu
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [
@@ -328,8 +328,8 @@
             "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), s390x-unknown-linux-gnu
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), s390x-unknown-linux-gnu
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:thumbv7em-none-eabi": [
@@ -345,24 +345,24 @@
             "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:wasm32-wasi": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), wasm32-wasi
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), wasm32-wasi
         ],
         "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-darwin
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-darwin
         ],
         "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-ios
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-apple-ios
         ],
         "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-fuchsia
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-fuchsia
         ],
         "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-linux-android
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-linux-android
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
         ],
         "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
@@ -370,8 +370,8 @@
             "@cui__windows-sys-0.48.0//:windows_sys",  # cfg(windows)
         ],
         "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
-            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))
+            "@cui__errno-0.3.1//:errno",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-unknown-freebsd
+            "@cui__libc-0.2.149//:libc",  # cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))))), x86_64-unknown-freebsd
         ],
         "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
             "@cui__linux-raw-sys-0.4.10//:linux_raw_sys",  # cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", target_endian = "little", any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))
@@ -388,10 +388,10 @@
 )
 
 cargo_build_script(
-    name = "rustix_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "alloc",
@@ -419,7 +419,7 @@
             "termios",  # aarch64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "termios",  # aarch64-unknown-nixos-gnu
+            "termios",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
         ],
         "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
             "termios",  # aarch64-unknown-nto-qnx710
@@ -470,7 +470,7 @@
             "termios",  # x86_64-unknown-linux-gnu
         ],
         "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "termios",  # x86_64-unknown-nixos-gnu
+            "termios",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
         ],
         "//conditions:default": [],
     }),
@@ -489,6 +489,7 @@
         ],
     ),
     edition = "2021",
+    pkg_name = "rustix",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -505,6 +506,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":rustix_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.ryu-1.0.14.bazel b/crate_universe/3rdparty/crates/BUILD.ryu-1.0.14.bazel
index 27a1bc9..1128c0b 100644
--- a/crate_universe/3rdparty/crates/BUILD.ryu-1.0.14.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.ryu-1.0.14.bazel
@@ -14,7 +14,7 @@
     name = "ryu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel b/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
index f0a26cb..3d7c0a3 100644
--- a/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
@@ -14,7 +14,7 @@
     name = "same_file",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.scopeguard-1.2.0.bazel b/crate_universe/3rdparty/crates/BUILD.scopeguard-1.2.0.bazel
index d200aa9..b416c0d 100644
--- a/crate_universe/3rdparty/crates/BUILD.scopeguard-1.2.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.scopeguard-1.2.0.bazel
@@ -14,7 +14,7 @@
     name = "scopeguard",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.semver-1.0.20.bazel b/crate_universe/3rdparty/crates/BUILD.semver-1.0.20.bazel
index 924e0e5..8121dfd 100644
--- a/crate_universe/3rdparty/crates/BUILD.semver-1.0.20.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.semver-1.0.20.bazel
@@ -15,7 +15,7 @@
     name = "semver",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -91,10 +91,10 @@
 )
 
 cargo_build_script(
-    name = "semver_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -116,6 +116,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "semver",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -132,6 +133,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":semver_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.serde-1.0.190.bazel b/crate_universe/3rdparty/crates/BUILD.serde-1.0.190.bazel
index 50b2ca0..46d756a 100644
--- a/crate_universe/3rdparty/crates/BUILD.serde-1.0.190.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.serde-1.0.190.bazel
@@ -15,7 +15,7 @@
     name = "serde",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -95,10 +95,10 @@
 )
 
 cargo_build_script(
-    name = "serde_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -122,6 +122,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "serde",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -138,6 +139,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":serde_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.190.bazel b/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.190.bazel
index c38e91c..23d5d7d 100644
--- a/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.190.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.190.bazel
@@ -14,7 +14,7 @@
     name = "serde_derive",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.108.bazel b/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.108.bazel
index 4db6b4a..adba288 100644
--- a/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.108.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.108.bazel
@@ -15,7 +15,7 @@
     name = "serde_json",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -93,10 +93,10 @@
 )
 
 cargo_build_script(
-    name = "serde_json_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "default",
@@ -118,6 +118,7 @@
         ],
     ),
     edition = "2021",
+    pkg_name = "serde_json",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -134,6 +135,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":serde_json_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.serde_spanned-0.6.5.bazel b/crate_universe/3rdparty/crates/BUILD.serde_spanned-0.6.5.bazel
index 71c364a..1cd9509 100644
--- a/crate_universe/3rdparty/crates/BUILD.serde_spanned-0.6.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.serde_spanned-0.6.5.bazel
@@ -14,7 +14,7 @@
     name = "serde_spanned",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.serde_starlark-0.1.14.bazel b/crate_universe/3rdparty/crates/BUILD.serde_starlark-0.1.14.bazel
index a75faf3..c76dcd8 100644
--- a/crate_universe/3rdparty/crates/BUILD.serde_starlark-0.1.14.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.serde_starlark-0.1.14.bazel
@@ -14,7 +14,7 @@
     name = "serde_starlark",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel
index 2fa9130..03ca907 100644
--- a/crate_universe/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel
@@ -14,7 +14,7 @@
     name = "sha1_smol",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.sha2-0.10.8.bazel b/crate_universe/3rdparty/crates/BUILD.sha2-0.10.8.bazel
index bd7e935..3ac248c 100644
--- a/crate_universe/3rdparty/crates/BUILD.sha2-0.10.8.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.sha2-0.10.8.bazel
@@ -14,7 +14,7 @@
     name = "sha2",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.sharded-slab-0.1.7.bazel b/crate_universe/3rdparty/crates/BUILD.sharded-slab-0.1.7.bazel
index 069cc51..3c40b4d 100644
--- a/crate_universe/3rdparty/crates/BUILD.sharded-slab-0.1.7.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.sharded-slab-0.1.7.bazel
@@ -14,7 +14,7 @@
     name = "sharded_slab",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel b/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel
index f4e303f..b159898 100644
--- a/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel
@@ -14,7 +14,7 @@
     name = "siphasher",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel b/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
index 0825a42..fdeacff 100644
--- a/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
@@ -14,7 +14,7 @@
     name = "slug",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.smallvec-1.11.0.bazel b/crate_universe/3rdparty/crates/BUILD.smallvec-1.11.0.bazel
index 25c9e7f..c36dd25 100644
--- a/crate_universe/3rdparty/crates/BUILD.smallvec-1.11.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.smallvec-1.11.0.bazel
@@ -14,7 +14,7 @@
     name = "smallvec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel b/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
index d1cd354..52f43df 100644
--- a/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
@@ -14,7 +14,7 @@
     name = "smawk",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.smol_str-0.2.0.bazel b/crate_universe/3rdparty/crates/BUILD.smol_str-0.2.0.bazel
index ea0369d..e880324 100644
--- a/crate_universe/3rdparty/crates/BUILD.smol_str-0.2.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.smol_str-0.2.0.bazel
@@ -14,7 +14,7 @@
     name = "smol_str",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.spdx-0.10.3.bazel b/crate_universe/3rdparty/crates/BUILD.spdx-0.10.3.bazel
index 434aafe..b75bcc0 100644
--- a/crate_universe/3rdparty/crates/BUILD.spdx-0.10.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.spdx-0.10.3.bazel
@@ -14,7 +14,7 @@
     name = "spdx",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel b/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
index aef41e7..3a14c5c 100644
--- a/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
@@ -14,7 +14,7 @@
     name = "spectral",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
index 13eae12..1a6a111 100644
--- a/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -14,7 +14,7 @@
     name = "strsim",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.syn-1.0.109.bazel b/crate_universe/3rdparty/crates/BUILD.syn-1.0.109.bazel
index eb4fa49..de70b54 100644
--- a/crate_universe/3rdparty/crates/BUILD.syn-1.0.109.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.syn-1.0.109.bazel
@@ -15,7 +15,7 @@
     name = "syn",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -99,10 +99,10 @@
 )
 
 cargo_build_script(
-    name = "syn_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "clone-impls",
@@ -130,6 +130,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "syn",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -146,6 +147,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":syn_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.syn-2.0.32.bazel b/crate_universe/3rdparty/crates/BUILD.syn-2.0.32.bazel
index 23b83ed..2fbd922 100644
--- a/crate_universe/3rdparty/crates/BUILD.syn-2.0.32.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.syn-2.0.32.bazel
@@ -14,7 +14,7 @@
     name = "syn",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -39,6 +39,7 @@
         "printing",
         "proc-macro",
         "quote",
+        "visit",
         "visit-mut",
     ],
     crate_root = "src/lib.rs",
diff --git a/crate_universe/3rdparty/crates/BUILD.tempfile-3.8.1.bazel b/crate_universe/3rdparty/crates/BUILD.tempfile-3.8.1.bazel
index a5c00b0..11f73af 100644
--- a/crate_universe/3rdparty/crates/BUILD.tempfile-3.8.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tempfile-3.8.1.bazel
@@ -14,7 +14,7 @@
     name = "tempfile",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.tera-1.19.1.bazel b/crate_universe/3rdparty/crates/BUILD.tera-1.19.1.bazel
index 6455bb0..0242292 100644
--- a/crate_universe/3rdparty/crates/BUILD.tera-1.19.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tera-1.19.1.bazel
@@ -14,7 +14,7 @@
     name = "tera",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -98,7 +98,7 @@
         "@cui__globwalk-0.8.1//:globwalk",
         "@cui__humansize-2.1.3//:humansize",
         "@cui__lazy_static-1.4.0//:lazy_static",
-        "@cui__percent-encoding-2.3.0//:percent_encoding",
+        "@cui__percent-encoding-2.3.1//:percent_encoding",
         "@cui__pest-2.7.0//:pest",
         "@cui__rand-0.8.5//:rand",
         "@cui__regex-1.10.2//:regex",
diff --git a/crate_universe/3rdparty/crates/BUILD.textwrap-0.16.0.bazel b/crate_universe/3rdparty/crates/BUILD.textwrap-0.16.0.bazel
index 26db9ea..67d6840 100644
--- a/crate_universe/3rdparty/crates/BUILD.textwrap-0.16.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.textwrap-0.16.0.bazel
@@ -14,7 +14,7 @@
     name = "textwrap",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.thiserror-1.0.50.bazel b/crate_universe/3rdparty/crates/BUILD.thiserror-1.0.50.bazel
index c005a35..9e1f2f6 100644
--- a/crate_universe/3rdparty/crates/BUILD.thiserror-1.0.50.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.thiserror-1.0.50.bazel
@@ -15,7 +15,7 @@
     name = "thiserror",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -88,10 +88,10 @@
 )
 
 cargo_build_script(
-    name = "thiserror_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -108,6 +108,7 @@
         ],
     ),
     edition = "2021",
+    pkg_name = "thiserror",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -124,6 +125,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":thiserror_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.thiserror-impl-1.0.50.bazel b/crate_universe/3rdparty/crates/BUILD.thiserror-impl-1.0.50.bazel
index deaa499..4f45c47 100644
--- a/crate_universe/3rdparty/crates/BUILD.thiserror-impl-1.0.50.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.thiserror-impl-1.0.50.bazel
@@ -14,7 +14,7 @@
     name = "thiserror_impl",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel b/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
index b19b477..042ae96 100644
--- a/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
@@ -14,7 +14,7 @@
     name = "thread_local",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -79,6 +79,6 @@
     }),
     version = "1.1.4",
     deps = [
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.time-0.3.30.bazel b/crate_universe/3rdparty/crates/BUILD.time-0.3.30.bazel
deleted file mode 100644
index 025a2e5..0000000
--- a/crate_universe/3rdparty/crates/BUILD.time-0.3.30.bazel
+++ /dev/null
@@ -1,196 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "time",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "alloc",
-        "formatting",
-        "local-offset",
-        "macros",
-        "parsing",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2021",
-    proc_macro_deps = [
-        "@cui__time-macros-0.2.15//:time_macros",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=time",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "0.3.30",
-    deps = [
-        "@cui__deranged-0.3.9//:deranged",
-        "@cui__itoa-1.0.8//:itoa",
-        "@cui__powerfmt-0.2.0//:powerfmt",
-        "@cui__time-core-0.1.2//:time_core",
-    ] + select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:i686-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:i686-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-linux-android": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
-            "@cui__libc-0.2.149//:libc",  # cfg(target_family = "unix")
-            "@cui__num_threads-0.1.6//:num_threads",  # cfg(target_family = "unix")
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.time-0.3.36.bazel b/crate_universe/3rdparty/crates/BUILD.time-0.3.36.bazel
new file mode 100644
index 0000000..d282a2b
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.time-0.3.36.bazel
@@ -0,0 +1,197 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "time",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "alloc",
+        "formatting",
+        "local-offset",
+        "macros",
+        "parsing",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2021",
+    proc_macro_deps = [
+        "@cui__time-macros-0.2.18//:time_macros",
+    ],
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=time",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "0.3.36",
+    deps = [
+        "@cui__deranged-0.3.9//:deranged",
+        "@cui__itoa-1.0.8//:itoa",
+        "@cui__num-conv-0.1.0//:num_conv",
+        "@cui__powerfmt-0.2.0//:powerfmt",
+        "@cui__time-core-0.1.2//:time_core",
+    ] + select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-darwin
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-apple-darwin
+        ],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-apple-ios
+        ],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-apple-ios-sim
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-apple-ios-sim
+        ],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-fuchsia
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-fuchsia
+        ],
+        "@rules_rust//rust/platform:aarch64-linux-android": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-linux-android
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-linux-android
+        ],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-unknown-linux-gnu
+        ],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
+        ],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
+            "@cui__libc-0.2.149//:libc",  # aarch64-unknown-nto-qnx710
+            "@cui__num_threads-0.1.6//:num_threads",  # aarch64-unknown-nto-qnx710
+        ],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
+            "@cui__libc-0.2.149//:libc",  # arm-unknown-linux-gnueabi
+            "@cui__num_threads-0.1.6//:num_threads",  # arm-unknown-linux-gnueabi
+        ],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [
+            "@cui__libc-0.2.149//:libc",  # armv7-linux-androideabi
+            "@cui__num_threads-0.1.6//:num_threads",  # armv7-linux-androideabi
+        ],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
+            "@cui__libc-0.2.149//:libc",  # armv7-unknown-linux-gnueabi
+            "@cui__num_threads-0.1.6//:num_threads",  # armv7-unknown-linux-gnueabi
+        ],
+        "@rules_rust//rust/platform:i686-apple-darwin": [
+            "@cui__libc-0.2.149//:libc",  # i686-apple-darwin
+            "@cui__num_threads-0.1.6//:num_threads",  # i686-apple-darwin
+        ],
+        "@rules_rust//rust/platform:i686-linux-android": [
+            "@cui__libc-0.2.149//:libc",  # i686-linux-android
+            "@cui__num_threads-0.1.6//:num_threads",  # i686-linux-android
+        ],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-freebsd
+            "@cui__num_threads-0.1.6//:num_threads",  # i686-unknown-freebsd
+        ],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [
+            "@cui__libc-0.2.149//:libc",  # i686-unknown-linux-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # i686-unknown-linux-gnu
+        ],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
+            "@cui__libc-0.2.149//:libc",  # powerpc-unknown-linux-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # powerpc-unknown-linux-gnu
+        ],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
+            "@cui__libc-0.2.149//:libc",  # s390x-unknown-linux-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # s390x-unknown-linux-gnu
+        ],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-darwin
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-apple-darwin
+        ],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-apple-ios
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-apple-ios
+        ],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-fuchsia
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-fuchsia
+        ],
+        "@rules_rust//rust/platform:x86_64-linux-android": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-linux-android
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-linux-android
+        ],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-freebsd
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-unknown-freebsd
+        ],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-unknown-linux-gnu
+        ],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
+            "@cui__libc-0.2.149//:libc",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+            "@cui__num_threads-0.1.6//:num_threads",  # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.time-core-0.1.2.bazel b/crate_universe/3rdparty/crates/BUILD.time-core-0.1.2.bazel
index 791803b..7f74905 100644
--- a/crate_universe/3rdparty/crates/BUILD.time-core-0.1.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.time-core-0.1.2.bazel
@@ -14,7 +14,7 @@
     name = "time_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.15.bazel b/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.15.bazel
deleted file mode 100644
index 55feead..0000000
--- a/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.15.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_proc_macro")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_proc_macro(
-    name = "time_macros",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "formatting",
-        "parsing",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2021",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=time-macros",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "0.2.15",
-    deps = [
-        "@cui__time-core-0.1.2//:time_core",
-    ],
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.18.bazel b/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.18.bazel
new file mode 100644
index 0000000..942f578
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.time-macros-0.2.18.bazel
@@ -0,0 +1,89 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_proc_macro")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_proc_macro(
+    name = "time_macros",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "formatting",
+        "parsing",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2021",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=time-macros",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "0.2.18",
+    deps = [
+        "@cui__num-conv-0.1.0//:num_conv",
+        "@cui__time-core-0.1.2//:time_core",
+    ],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel b/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
index f227825..ecdb87d 100644
--- a/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
@@ -14,7 +14,7 @@
     name = "tinyvec",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.1.bazel b/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.1.bazel
index 12db9aa..c0a66c8 100644
--- a/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.1.bazel
@@ -14,7 +14,7 @@
     name = "tinyvec_macros",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.toml-0.7.6.bazel b/crate_universe/3rdparty/crates/BUILD.toml-0.7.6.bazel
index 31e36c6..18d11e9 100644
--- a/crate_universe/3rdparty/crates/BUILD.toml-0.7.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.toml-0.7.6.bazel
@@ -14,7 +14,7 @@
     name = "toml",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.toml-0.8.10.bazel b/crate_universe/3rdparty/crates/BUILD.toml-0.8.10.bazel
index 4194396..acc5253 100644
--- a/crate_universe/3rdparty/crates/BUILD.toml-0.8.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.toml-0.8.10.bazel
@@ -14,7 +14,7 @@
     name = "toml",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.toml_datetime-0.6.5.bazel b/crate_universe/3rdparty/crates/BUILD.toml_datetime-0.6.5.bazel
index 91dfaf4..f4ecdeb 100644
--- a/crate_universe/3rdparty/crates/BUILD.toml_datetime-0.6.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.toml_datetime-0.6.5.bazel
@@ -14,7 +14,7 @@
     name = "toml_datetime",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.toml_edit-0.19.13.bazel b/crate_universe/3rdparty/crates/BUILD.toml_edit-0.19.13.bazel
index c38784c..e811047 100644
--- a/crate_universe/3rdparty/crates/BUILD.toml_edit-0.19.13.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.toml_edit-0.19.13.bazel
@@ -14,7 +14,7 @@
     name = "toml_edit",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.toml_edit-0.22.4.bazel b/crate_universe/3rdparty/crates/BUILD.toml_edit-0.22.4.bazel
index a25f309..f8855cd 100644
--- a/crate_universe/3rdparty/crates/BUILD.toml_edit-0.22.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.toml_edit-0.22.4.bazel
@@ -14,7 +14,7 @@
     name = "toml_edit",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.tracing-0.1.40.bazel b/crate_universe/3rdparty/crates/BUILD.tracing-0.1.40.bazel
index 7cd1068..f66f3ce 100644
--- a/crate_universe/3rdparty/crates/BUILD.tracing-0.1.40.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tracing-0.1.40.bazel
@@ -14,7 +14,7 @@
     name = "tracing",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.tracing-attributes-0.1.27.bazel b/crate_universe/3rdparty/crates/BUILD.tracing-attributes-0.1.27.bazel
index abd597e..1f5c5cb 100644
--- a/crate_universe/3rdparty/crates/BUILD.tracing-attributes-0.1.27.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tracing-attributes-0.1.27.bazel
@@ -14,7 +14,7 @@
     name = "tracing_attributes",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.tracing-core-0.1.32.bazel b/crate_universe/3rdparty/crates/BUILD.tracing-core-0.1.32.bazel
index 7e7e9f9..11bfb53 100644
--- a/crate_universe/3rdparty/crates/BUILD.tracing-core-0.1.32.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tracing-core-0.1.32.bazel
@@ -14,7 +14,7 @@
     name = "tracing_core",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -84,6 +84,6 @@
     }),
     version = "0.1.32",
     deps = [
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.tracing-log-0.1.4.bazel b/crate_universe/3rdparty/crates/BUILD.tracing-log-0.1.4.bazel
index 1679e9a..cbbe62b 100644
--- a/crate_universe/3rdparty/crates/BUILD.tracing-log-0.1.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tracing-log-0.1.4.bazel
@@ -14,7 +14,7 @@
     name = "tracing_log",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -84,7 +84,7 @@
     version = "0.1.4",
     deps = [
         "@cui__log-0.4.19//:log",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__tracing-core-0.1.32//:tracing_core",
     ],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.tracing-subscriber-0.3.17.bazel b/crate_universe/3rdparty/crates/BUILD.tracing-subscriber-0.3.17.bazel
index bb85593..f200d95 100644
--- a/crate_universe/3rdparty/crates/BUILD.tracing-subscriber-0.3.17.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.tracing-subscriber-0.3.17.bazel
@@ -14,7 +14,7 @@
     name = "tracing_subscriber",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.typenum-1.16.0.bazel b/crate_universe/3rdparty/crates/BUILD.typenum-1.16.0.bazel
index 9031608..71606ed 100644
--- a/crate_universe/3rdparty/crates/BUILD.typenum-1.16.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.typenum-1.16.0.bazel
@@ -15,7 +15,7 @@
     name = "typenum",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "typenum_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_main",
     crate_root = "build/main.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "typenum",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_main",
-    actual = ":typenum_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.6.bazel b/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.6.bazel
index 2238a38..804831b 100644
--- a/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.6.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.6.bazel
@@ -14,7 +14,7 @@
     name = "ucd_trie",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.uluru-3.0.0.bazel b/crate_universe/3rdparty/crates/BUILD.uluru-3.0.0.bazel
index 3eeb026..b58a2dd 100644
--- a/crate_universe/3rdparty/crates/BUILD.uluru-3.0.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.uluru-3.0.0.bazel
@@ -14,7 +14,7 @@
     name = "uluru",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
index 9a8f03a..5bdd3c3 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_char_property",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
index 33da796..e4dc8f0 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_char_range",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
index eb7f04d..707bec7 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_common",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
index 5aa1964..0185dac 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_segment",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
index 49626d3..c7566a2 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_ucd_segment",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel b/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
index 1253e18..2d338be 100644
--- a/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
@@ -14,7 +14,7 @@
     name = "unic_ucd_version",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.13.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.13.bazel
index 0a11b45..cf02e6d 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.13.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.13.bazel
@@ -14,7 +14,7 @@
     name = "unicode_bidi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-bom-2.0.2.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-bom-2.0.2.bazel
index a0acad3..c88cda6 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-bom-2.0.2.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-bom-2.0.2.bazel
@@ -14,7 +14,7 @@
     name = "unicode_bom",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.10.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.10.bazel
index 4341228..be35ccf 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.10.bazel
@@ -14,7 +14,7 @@
     name = "unicode_ident",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.5.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.5.bazel
index d1cb550..fe438e7 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.5.bazel
@@ -14,7 +14,7 @@
     name = "unicode_linebreak",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.22.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.22.bazel
index fb30bba..10a82c9 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.22.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.22.bazel
@@ -14,7 +14,7 @@
     name = "unicode_normalization",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel b/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
index 5265ba1..7b396d8 100644
--- a/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.10.bazel
@@ -14,7 +14,7 @@
     name = "unicode_width",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.url-2.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.url-2.4.0.bazel
deleted file mode 100644
index 2a9ae72..0000000
--- a/crate_universe/3rdparty/crates/BUILD.url-2.4.0.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
-# regenerate this file, run the following:
-#
-#     bazel run @//crate_universe/3rdparty:crates_vendor
-###############################################################################
-
-load("@rules_rust//rust:defs.bzl", "rust_library")
-
-package(default_visibility = ["//visibility:public"])
-
-rust_library(
-    name = "url",
-    srcs = glob(
-        include = ["**/*.rs"],
-        allow_empty = False,
-    ),
-    compile_data = glob(
-        include = ["**"],
-        allow_empty = True,
-        exclude = [
-            "**/* *",
-            ".tmp_git_root/**/*",
-            "BUILD",
-            "BUILD.bazel",
-            "WORKSPACE",
-            "WORKSPACE.bazel",
-        ],
-    ),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-bazel",
-        "crate-name=url",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    target_compatible_with = select({
-        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios": [],
-        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
-        "@rules_rust//rust/platform:aarch64-fuchsia": [],
-        "@rules_rust//rust/platform:aarch64-linux-android": [],
-        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
-        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
-        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
-        "@rules_rust//rust/platform:i686-apple-darwin": [],
-        "@rules_rust//rust/platform:i686-linux-android": [],
-        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
-        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
-        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
-        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
-        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
-        "@rules_rust//rust/platform:wasm32-wasi": [],
-        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
-        "@rules_rust//rust/platform:x86_64-apple-ios": [],
-        "@rules_rust//rust/platform:x86_64-fuchsia": [],
-        "@rules_rust//rust/platform:x86_64-linux-android": [],
-        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
-        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
-        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
-        "@rules_rust//rust/platform:x86_64-unknown-none": [],
-        "//conditions:default": ["@platforms//:incompatible"],
-    }),
-    version = "2.4.0",
-    deps = [
-        "@cui__form_urlencoded-1.2.0//:form_urlencoded",
-        "@cui__idna-0.4.0//:idna",
-        "@cui__percent-encoding-2.3.0//:percent_encoding",
-    ],
-)
diff --git a/crate_universe/3rdparty/crates/BUILD.url-2.5.2.bazel b/crate_universe/3rdparty/crates/BUILD.url-2.5.2.bazel
new file mode 100644
index 0000000..ccf0229
--- /dev/null
+++ b/crate_universe/3rdparty/crates/BUILD.url-2.5.2.bazel
@@ -0,0 +1,89 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run @//crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load("@rules_rust//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+rust_library(
+    name = "url",
+    srcs = glob(
+        include = ["**/*.rs"],
+        allow_empty = True,
+    ),
+    compile_data = glob(
+        include = ["**"],
+        allow_empty = True,
+        exclude = [
+            "**/* *",
+            ".tmp_git_root/**/*",
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "crate-name=url",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    target_compatible_with = select({
+        "@rules_rust//rust/platform:aarch64-apple-darwin": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios": [],
+        "@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
+        "@rules_rust//rust/platform:aarch64-fuchsia": [],
+        "@rules_rust//rust/platform:aarch64-linux-android": [],
+        "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
+        "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:armv7-linux-androideabi": [],
+        "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
+        "@rules_rust//rust/platform:i686-apple-darwin": [],
+        "@rules_rust//rust/platform:i686-linux-android": [],
+        "@rules_rust//rust/platform:i686-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:i686-unknown-freebsd": [],
+        "@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
+        "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:thumbv7em-none-eabi": [],
+        "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
+        "@rules_rust//rust/platform:wasm32-unknown-unknown": [],
+        "@rules_rust//rust/platform:wasm32-wasi": [],
+        "@rules_rust//rust/platform:x86_64-apple-darwin": [],
+        "@rules_rust//rust/platform:x86_64-apple-ios": [],
+        "@rules_rust//rust/platform:x86_64-fuchsia": [],
+        "@rules_rust//rust/platform:x86_64-linux-android": [],
+        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
+        "@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
+        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
+        "@rules_rust//rust/platform:x86_64-unknown-none": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    }),
+    version = "2.5.2",
+    deps = [
+        "@cui__form_urlencoded-1.2.1//:form_urlencoded",
+        "@cui__idna-0.5.0//:idna",
+        "@cui__percent-encoding-2.3.1//:percent_encoding",
+    ],
+)
diff --git a/crate_universe/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel b/crate_universe/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
index 457eb58..0c7501b 100644
--- a/crate_universe/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.utf8parse-0.2.1.bazel
@@ -14,7 +14,7 @@
     name = "utf8parse",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.valuable-0.1.0.bazel b/crate_universe/3rdparty/crates/BUILD.valuable-0.1.0.bazel
index e694e6b..81a7b6c 100644
--- a/crate_universe/3rdparty/crates/BUILD.valuable-0.1.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.valuable-0.1.0.bazel
@@ -15,7 +15,7 @@
     name = "valuable",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "valuable_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "valuable",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":valuable_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
index 60896d1..1565500 100644
--- a/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
@@ -14,7 +14,7 @@
     name = "version_check",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.3.bazel b/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.3.bazel
index 8ea2146..5fd9062 100644
--- a/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.3.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.3.bazel
@@ -14,7 +14,7 @@
     name = "walkdir",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
index 4436951..07d595e 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -14,7 +14,7 @@
     name = "wasi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-0.2.87.bazel b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-0.2.87.bazel
index 3ce1724..8cf0483 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-0.2.87.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-0.2.87.bazel
@@ -15,7 +15,7 @@
     name = "wasm_bindgen",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -89,10 +89,10 @@
 )
 
 cargo_build_script(
-    name = "wasm-bindgen_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -109,6 +109,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "wasm-bindgen",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -125,6 +126,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":wasm-bindgen_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.87.bazel b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.87.bazel
index 6a56b38..7cc6874 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.87.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.87.bazel
@@ -14,7 +14,7 @@
     name = "wasm_bindgen_backend",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -81,7 +81,7 @@
     deps = [
         "@cui__bumpalo-3.13.0//:bumpalo",
         "@cui__log-0.4.19//:log",
-        "@cui__once_cell-1.18.0//:once_cell",
+        "@cui__once_cell-1.19.0//:once_cell",
         "@cui__proc-macro2-1.0.64//:proc_macro2",
         "@cui__quote-1.0.29//:quote",
         "@cui__syn-2.0.32//:syn",
diff --git a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.87.bazel b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.87.bazel
index 9570e32..b031629 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.87.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.87.bazel
@@ -14,7 +14,7 @@
     name = "wasm_bindgen_macro",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.87.bazel b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.87.bazel
index 5d5491e..21aa456 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.87.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.87.bazel
@@ -14,7 +14,7 @@
     name = "wasm_bindgen_macro_support",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.87.bazel b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.87.bazel
index 57e0669..b28248a 100644
--- a/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.87.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.87.bazel
@@ -15,7 +15,7 @@
     name = "wasm_bindgen_shared",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "wasm-bindgen-shared_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -106,6 +106,7 @@
     ),
     edition = "2018",
     links = "wasm_bindgen",
+    pkg_name = "wasm-bindgen-shared",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -122,6 +123,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":wasm-bindgen-shared_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
index 55f08f4..ed9df42 100644
--- a/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -15,7 +15,7 @@
     name = "winapi",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -103,10 +103,10 @@
 )
 
 cargo_build_script(
-    name = "winapi_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_features = [
         "consoleapi",
@@ -141,6 +141,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "winapi",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -157,6 +158,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":winapi_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
index 7c514eb..4a1831a 100644
--- a/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -15,7 +15,7 @@
     name = "winapi_i686_pc_windows_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "winapi-i686-pc-windows-gnu_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "winapi-i686-pc-windows-gnu",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":winapi-i686-pc-windows-gnu_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
index 164ab8c..87fb884 100644
--- a/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -14,7 +14,7 @@
     name = "winapi_util",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
index 97f4859..ffc15b4 100644
--- a/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -15,7 +15,7 @@
     name = "winapi_x86_64_pc_windows_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "winapi-x86_64-pc-windows-gnu_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2015",
+    pkg_name = "winapi-x86_64-pc-windows-gnu",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":winapi-x86_64-pc-windows-gnu_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows-0.48.0.bazel
index 3d28891..736852f 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
index c1a7d88..7154259 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows-sys-0.48.0.bazel
@@ -14,7 +14,7 @@
     name = "windows_sys",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.windows-targets-0.48.1.bazel b/crate_universe/3rdparty/crates/BUILD.windows-targets-0.48.1.bazel
index 9abd50f..2e0e20b 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows-targets-0.48.1.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows-targets-0.48.1.bazel
@@ -14,7 +14,7 @@
     name = "windows_targets",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
index 0a702a6..57de35d 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_aarch64_gnullvm-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_aarch64_gnullvm",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_aarch64_gnullvm_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_aarch64_gnullvm",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_aarch64_gnullvm_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
index 98a26f0..e768859 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_aarch64_msvc-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_aarch64_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_aarch64_msvc_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_aarch64_msvc",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_aarch64_msvc_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
index 1041257..73ede5b 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_i686_gnu-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_i686_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_i686_gnu_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_i686_gnu",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_i686_gnu_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
index c17adbc..0a13d4f 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_i686_msvc-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_i686_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_i686_msvc_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_i686_msvc",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_i686_msvc_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
index 68116b3..1071cb2 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnu-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_x86_64_gnu",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_x86_64_gnu_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_x86_64_gnu",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_x86_64_gnu_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
index 7775985..5f2c640 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_gnullvm-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_x86_64_gnullvm",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_x86_64_gnullvm_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_x86_64_gnullvm",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_x86_64_gnullvm_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
index 632e80c..45629c7 100644
--- a/crate_universe/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.windows_x86_64_msvc-0.48.0.bazel
@@ -15,7 +15,7 @@
     name = "windows_x86_64_msvc",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
@@ -85,10 +85,10 @@
 )
 
 cargo_build_script(
-    name = "windows_x86_64_msvc_bs",
+    name = "_bs",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     crate_name = "build_script_build",
     crate_root = "build.rs",
@@ -105,6 +105,7 @@
         ],
     ),
     edition = "2018",
+    pkg_name = "windows_x86_64_msvc",
     rustc_flags = [
         "--cap-lints=allow",
     ],
@@ -121,6 +122,6 @@
 
 alias(
     name = "build_script_build",
-    actual = ":windows_x86_64_msvc_bs",
+    actual = ":_bs",
     tags = ["manual"],
 )
diff --git a/crate_universe/3rdparty/crates/BUILD.winnow-0.5.18.bazel b/crate_universe/3rdparty/crates/BUILD.winnow-0.5.18.bazel
index 725baec..e3bc6f7 100644
--- a/crate_universe/3rdparty/crates/BUILD.winnow-0.5.18.bazel
+++ b/crate_universe/3rdparty/crates/BUILD.winnow-0.5.18.bazel
@@ -14,7 +14,7 @@
     name = "winnow",
     srcs = glob(
         include = ["**/*.rs"],
-        allow_empty = False,
+        allow_empty = True,
     ),
     compile_data = glob(
         include = ["**"],
diff --git a/crate_universe/3rdparty/crates/defs.bzl b/crate_universe/3rdparty/crates/defs.bzl
index 83fa4c9..276d521 100644
--- a/crate_universe/3rdparty/crates/defs.bzl
+++ b/crate_universe/3rdparty/crates/defs.bzl
@@ -300,13 +300,14 @@
             "cargo-lock": Label("@cui__cargo-lock-9.0.0//:cargo_lock"),
             "cargo-platform": Label("@cui__cargo-platform-0.1.4//:cargo_platform"),
             "cargo_metadata": Label("@cui__cargo_metadata-0.18.1//:cargo_metadata"),
-            "cargo_toml": Label("@cui__cargo_toml-0.17.1//:cargo_toml"),
+            "cargo_toml": Label("@cui__cargo_toml-0.19.2//:cargo_toml"),
             "cfg-expr": Label("@cui__cfg-expr-0.15.5//:cfg_expr"),
             "clap": Label("@cui__clap-4.3.11//:clap"),
             "crates-index": Label("@cui__crates-index-2.2.0//:crates_index"),
             "hex": Label("@cui__hex-0.4.3//:hex"),
             "itertools": Label("@cui__itertools-0.12.0//:itertools"),
             "normpath": Label("@cui__normpath-1.1.1//:normpath"),
+            "once_cell": Label("@cui__once_cell-1.19.0//:once_cell"),
             "pathdiff": Label("@cui__pathdiff-0.2.1//:pathdiff"),
             "regex": Label("@cui__regex-1.10.2//:regex"),
             "semver": Label("@cui__semver-1.0.20//:semver"),
@@ -321,6 +322,7 @@
             "toml": Label("@cui__toml-0.8.10//:toml"),
             "tracing": Label("@cui__tracing-0.1.40//:tracing"),
             "tracing-subscriber": Label("@cui__tracing-subscriber-0.3.17//:tracing_subscriber"),
+            "url": Label("@cui__url-2.5.2//:url"),
         },
     },
     "crate_universe/tools/cross_installer": {
@@ -462,7 +464,7 @@
     "aarch64-linux-android": ["@rules_rust//rust/platform:aarch64-linux-android"],
     "aarch64-pc-windows-gnullvm": [],
     "aarch64-pc-windows-msvc": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc"],
-    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu"],
+    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
     "aarch64-unknown-nixos-gnu": ["@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
     "aarch64-unknown-nto-qnx710": ["@rules_rust//rust/platform:aarch64-unknown-nto-qnx710"],
     "arm-unknown-linux-gnueabi": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi"],
@@ -491,7 +493,6 @@
     "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasi", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none"],
     "cfg(target_arch = \"wasm32\")": ["@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasi"],
     "cfg(target_env = \"sgx\")": [],
-    "cfg(target_family = \"unix\")": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "cfg(target_os = \"android\")": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:x86_64-linux-android"],
     "cfg(target_os = \"dragonfly\")": [],
     "cfg(target_os = \"fuchsia\")": ["@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:x86_64-fuchsia"],
@@ -501,7 +502,6 @@
     "cfg(target_os = \"wasi\")": ["@rules_rust//rust/platform:wasm32-wasi"],
     "cfg(target_os = \"windows\")": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
     "cfg(target_vendor = \"apple\")": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios"],
-    "cfg(tracing_unstable)": [],
     "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "cfg(windows)": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
     "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"],
@@ -526,7 +526,7 @@
     "x86_64-pc-windows-gnullvm": [],
     "x86_64-pc-windows-msvc": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
     "x86_64-unknown-freebsd": ["@rules_rust//rust/platform:x86_64-unknown-freebsd"],
-    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu"],
+    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "x86_64-unknown-nixos-gnu": ["@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
     "x86_64-unknown-none": ["@rules_rust//rust/platform:x86_64-unknown-none"],
 }
@@ -544,7 +544,7 @@
         name = "cui__adler-1.0.2",
         sha256 = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/adler/1.0.2/download"],
+        urls = ["https://static.crates.io/crates/adler/1.0.2/download"],
         strip_prefix = "adler-1.0.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.adler-1.0.2.bazel"),
     )
@@ -554,7 +554,7 @@
         name = "cui__aho-corasick-1.0.2",
         sha256 = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/aho-corasick/1.0.2/download"],
+        urls = ["https://static.crates.io/crates/aho-corasick/1.0.2/download"],
         strip_prefix = "aho-corasick-1.0.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.aho-corasick-1.0.2.bazel"),
     )
@@ -564,7 +564,7 @@
         name = "cui__android-tzdata-0.1.1",
         sha256 = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/android-tzdata/0.1.1/download"],
+        urls = ["https://static.crates.io/crates/android-tzdata/0.1.1/download"],
         strip_prefix = "android-tzdata-0.1.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.android-tzdata-0.1.1.bazel"),
     )
@@ -574,7 +574,7 @@
         name = "cui__android_system_properties-0.1.5",
         sha256 = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/android_system_properties/0.1.5/download"],
+        urls = ["https://static.crates.io/crates/android_system_properties/0.1.5/download"],
         strip_prefix = "android_system_properties-0.1.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.android_system_properties-0.1.5.bazel"),
     )
@@ -584,7 +584,7 @@
         name = "cui__anstream-0.3.2",
         sha256 = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstream/0.3.2/download"],
+        urls = ["https://static.crates.io/crates/anstream/0.3.2/download"],
         strip_prefix = "anstream-0.3.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anstream-0.3.2.bazel"),
     )
@@ -594,7 +594,7 @@
         name = "cui__anstyle-1.0.1",
         sha256 = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle/1.0.1/download"],
+        urls = ["https://static.crates.io/crates/anstyle/1.0.1/download"],
         strip_prefix = "anstyle-1.0.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anstyle-1.0.1.bazel"),
     )
@@ -604,7 +604,7 @@
         name = "cui__anstyle-parse-0.2.1",
         sha256 = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-parse/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/anstyle-parse/0.2.1/download"],
         strip_prefix = "anstyle-parse-0.2.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anstyle-parse-0.2.1.bazel"),
     )
@@ -614,7 +614,7 @@
         name = "cui__anstyle-query-1.0.0",
         sha256 = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-query/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/anstyle-query/1.0.0/download"],
         strip_prefix = "anstyle-query-1.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anstyle-query-1.0.0.bazel"),
     )
@@ -624,7 +624,7 @@
         name = "cui__anstyle-wincon-1.0.1",
         sha256 = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anstyle-wincon/1.0.1/download"],
+        urls = ["https://static.crates.io/crates/anstyle-wincon/1.0.1/download"],
         strip_prefix = "anstyle-wincon-1.0.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anstyle-wincon-1.0.1.bazel"),
     )
@@ -634,7 +634,7 @@
         name = "cui__anyhow-1.0.75",
         sha256 = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.75/download"],
+        urls = ["https://static.crates.io/crates/anyhow/1.0.75/download"],
         strip_prefix = "anyhow-1.0.75",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anyhow-1.0.75.bazel"),
     )
@@ -644,7 +644,7 @@
         name = "cui__arc-swap-1.6.0",
         sha256 = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/arc-swap/1.6.0/download"],
+        urls = ["https://static.crates.io/crates/arc-swap/1.6.0/download"],
         strip_prefix = "arc-swap-1.6.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.arc-swap-1.6.0.bazel"),
     )
@@ -654,7 +654,7 @@
         name = "cui__arrayvec-0.7.4",
         sha256 = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/arrayvec/0.7.4/download"],
+        urls = ["https://static.crates.io/crates/arrayvec/0.7.4/download"],
         strip_prefix = "arrayvec-0.7.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.arrayvec-0.7.4.bazel"),
     )
@@ -664,7 +664,7 @@
         name = "cui__autocfg-1.1.0",
         sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        urls = ["https://static.crates.io/crates/autocfg/1.1.0/download"],
         strip_prefix = "autocfg-1.1.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
     )
@@ -674,7 +674,7 @@
         name = "cui__bitflags-1.3.2",
         sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        urls = ["https://static.crates.io/crates/bitflags/1.3.2/download"],
         strip_prefix = "bitflags-1.3.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
     )
@@ -684,7 +684,7 @@
         name = "cui__bitflags-2.4.1",
         sha256 = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bitflags/2.4.1/download"],
+        urls = ["https://static.crates.io/crates/bitflags/2.4.1/download"],
         strip_prefix = "bitflags-2.4.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.bitflags-2.4.1.bazel"),
     )
@@ -694,7 +694,7 @@
         name = "cui__block-buffer-0.10.4",
         sha256 = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/block-buffer/0.10.4/download"],
+        urls = ["https://static.crates.io/crates/block-buffer/0.10.4/download"],
         strip_prefix = "block-buffer-0.10.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.block-buffer-0.10.4.bazel"),
     )
@@ -704,7 +704,7 @@
         name = "cui__bstr-1.6.0",
         sha256 = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bstr/1.6.0/download"],
+        urls = ["https://static.crates.io/crates/bstr/1.6.0/download"],
         strip_prefix = "bstr-1.6.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.bstr-1.6.0.bazel"),
     )
@@ -714,7 +714,7 @@
         name = "cui__btoi-0.4.3",
         sha256 = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/btoi/0.4.3/download"],
+        urls = ["https://static.crates.io/crates/btoi/0.4.3/download"],
         strip_prefix = "btoi-0.4.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.btoi-0.4.3.bazel"),
     )
@@ -724,7 +724,7 @@
         name = "cui__bumpalo-3.13.0",
         sha256 = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bumpalo/3.13.0/download"],
+        urls = ["https://static.crates.io/crates/bumpalo/3.13.0/download"],
         strip_prefix = "bumpalo-3.13.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.bumpalo-3.13.0.bazel"),
     )
@@ -734,7 +734,7 @@
         name = "cui__byteyarn-0.2.3",
         sha256 = "a7534301c0ea17abb4db06d75efc7b4b0fa360fce8e175a4330d721c71c942ff",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/byteyarn/0.2.3/download"],
+        urls = ["https://static.crates.io/crates/byteyarn/0.2.3/download"],
         strip_prefix = "byteyarn-0.2.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.byteyarn-0.2.3.bazel"),
     )
@@ -744,7 +744,7 @@
         name = "cui__camino-1.1.6",
         sha256 = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/camino/1.1.6/download"],
+        urls = ["https://static.crates.io/crates/camino/1.1.6/download"],
         strip_prefix = "camino-1.1.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.camino-1.1.6.bazel"),
     )
@@ -754,7 +754,7 @@
         name = "cui__cargo-lock-9.0.0",
         sha256 = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo-lock/9.0.0/download"],
+        urls = ["https://static.crates.io/crates/cargo-lock/9.0.0/download"],
         strip_prefix = "cargo-lock-9.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo-lock-9.0.0.bazel"),
     )
@@ -764,7 +764,7 @@
         name = "cui__cargo-platform-0.1.4",
         sha256 = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo-platform/0.1.4/download"],
+        urls = ["https://static.crates.io/crates/cargo-platform/0.1.4/download"],
         strip_prefix = "cargo-platform-0.1.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo-platform-0.1.4.bazel"),
     )
@@ -774,19 +774,19 @@
         name = "cui__cargo_metadata-0.18.1",
         sha256 = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo_metadata/0.18.1/download"],
+        urls = ["https://static.crates.io/crates/cargo_metadata/0.18.1/download"],
         strip_prefix = "cargo_metadata-0.18.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo_metadata-0.18.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__cargo_toml-0.17.1",
-        sha256 = "4d1ece59890e746567b467253aea0adbe8a21784d0b025d8a306f66c391c2957",
+        name = "cui__cargo_toml-0.19.2",
+        sha256 = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo_toml/0.17.1/download"],
-        strip_prefix = "cargo_toml-0.17.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo_toml-0.17.1.bazel"),
+        urls = ["https://static.crates.io/crates/cargo_toml/0.19.2/download"],
+        strip_prefix = "cargo_toml-0.19.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo_toml-0.19.2.bazel"),
     )
 
     maybe(
@@ -794,7 +794,7 @@
         name = "cui__cc-1.0.79",
         sha256 = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cc/1.0.79/download"],
+        urls = ["https://static.crates.io/crates/cc/1.0.79/download"],
         strip_prefix = "cc-1.0.79",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cc-1.0.79.bazel"),
     )
@@ -804,7 +804,7 @@
         name = "cui__cfg-expr-0.15.5",
         sha256 = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cfg-expr/0.15.5/download"],
+        urls = ["https://static.crates.io/crates/cfg-expr/0.15.5/download"],
         strip_prefix = "cfg-expr-0.15.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cfg-expr-0.15.5.bazel"),
     )
@@ -814,7 +814,7 @@
         name = "cui__cfg-if-1.0.0",
         sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/cfg-if/1.0.0/download"],
         strip_prefix = "cfg-if-1.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
     )
@@ -824,7 +824,7 @@
         name = "cui__chrono-0.4.26",
         sha256 = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/chrono/0.4.26/download"],
+        urls = ["https://static.crates.io/crates/chrono/0.4.26/download"],
         strip_prefix = "chrono-0.4.26",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.chrono-0.4.26.bazel"),
     )
@@ -834,7 +834,7 @@
         name = "cui__chrono-tz-0.8.4",
         sha256 = "e23185c0e21df6ed832a12e2bda87c7d1def6842881fb634a8511ced741b0d76",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/chrono-tz/0.8.4/download"],
+        urls = ["https://static.crates.io/crates/chrono-tz/0.8.4/download"],
         strip_prefix = "chrono-tz-0.8.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.chrono-tz-0.8.4.bazel"),
     )
@@ -844,7 +844,7 @@
         name = "cui__chrono-tz-build-0.2.1",
         sha256 = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/chrono-tz-build/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/chrono-tz-build/0.2.1/download"],
         strip_prefix = "chrono-tz-build-0.2.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.chrono-tz-build-0.2.1.bazel"),
     )
@@ -854,7 +854,7 @@
         name = "cui__clap-4.3.11",
         sha256 = "1640e5cc7fb47dbb8338fd471b105e7ed6c3cb2aeb00c2e067127ffd3764a05d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap/4.3.11/download"],
+        urls = ["https://static.crates.io/crates/clap/4.3.11/download"],
         strip_prefix = "clap-4.3.11",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap-4.3.11.bazel"),
     )
@@ -864,7 +864,7 @@
         name = "cui__clap_builder-4.3.11",
         sha256 = "98c59138d527eeaf9b53f35a77fcc1fad9d883116070c63d5de1c7dc7b00c72b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_builder/4.3.11/download"],
+        urls = ["https://static.crates.io/crates/clap_builder/4.3.11/download"],
         strip_prefix = "clap_builder-4.3.11",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_builder-4.3.11.bazel"),
     )
@@ -874,7 +874,7 @@
         name = "cui__clap_derive-4.3.2",
         sha256 = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_derive/4.3.2/download"],
+        urls = ["https://static.crates.io/crates/clap_derive/4.3.2/download"],
         strip_prefix = "clap_derive-4.3.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_derive-4.3.2.bazel"),
     )
@@ -884,7 +884,7 @@
         name = "cui__clap_lex-0.5.0",
         sha256 = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_lex/0.5.0/download"],
+        urls = ["https://static.crates.io/crates/clap_lex/0.5.0/download"],
         strip_prefix = "clap_lex-0.5.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_lex-0.5.0.bazel"),
     )
@@ -894,7 +894,7 @@
         name = "cui__clru-0.6.1",
         sha256 = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clru/0.6.1/download"],
+        urls = ["https://static.crates.io/crates/clru/0.6.1/download"],
         strip_prefix = "clru-0.6.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clru-0.6.1.bazel"),
     )
@@ -904,7 +904,7 @@
         name = "cui__colorchoice-1.0.0",
         sha256 = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/colorchoice/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/colorchoice/1.0.0/download"],
         strip_prefix = "colorchoice-1.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.colorchoice-1.0.0.bazel"),
     )
@@ -914,7 +914,7 @@
         name = "cui__core-foundation-sys-0.8.4",
         sha256 = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/core-foundation-sys/0.8.4/download"],
+        urls = ["https://static.crates.io/crates/core-foundation-sys/0.8.4/download"],
         strip_prefix = "core-foundation-sys-0.8.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.core-foundation-sys-0.8.4.bazel"),
     )
@@ -924,7 +924,7 @@
         name = "cui__cpufeatures-0.2.9",
         sha256 = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cpufeatures/0.2.9/download"],
+        urls = ["https://static.crates.io/crates/cpufeatures/0.2.9/download"],
         strip_prefix = "cpufeatures-0.2.9",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cpufeatures-0.2.9.bazel"),
     )
@@ -934,7 +934,7 @@
         name = "cui__crates-index-2.2.0",
         sha256 = "33bc10579ea08741ae173928194b6c42c90b295d51ddd0d18238eaf15502ac87",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crates-index/2.2.0/download"],
+        urls = ["https://static.crates.io/crates/crates-index/2.2.0/download"],
         strip_prefix = "crates-index-2.2.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crates-index-2.2.0.bazel"),
     )
@@ -944,7 +944,7 @@
         name = "cui__crc32fast-1.3.2",
         sha256 = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crc32fast/1.3.2/download"],
+        urls = ["https://static.crates.io/crates/crc32fast/1.3.2/download"],
         strip_prefix = "crc32fast-1.3.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crc32fast-1.3.2.bazel"),
     )
@@ -954,7 +954,7 @@
         name = "cui__crossbeam-0.8.2",
         sha256 = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam/0.8.2/download"],
+        urls = ["https://static.crates.io/crates/crossbeam/0.8.2/download"],
         strip_prefix = "crossbeam-0.8.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-0.8.2.bazel"),
     )
@@ -964,7 +964,7 @@
         name = "cui__crossbeam-channel-0.5.8",
         sha256 = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-channel/0.5.8/download"],
+        urls = ["https://static.crates.io/crates/crossbeam-channel/0.5.8/download"],
         strip_prefix = "crossbeam-channel-0.5.8",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-channel-0.5.8.bazel"),
     )
@@ -974,7 +974,7 @@
         name = "cui__crossbeam-deque-0.8.3",
         sha256 = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-deque/0.8.3/download"],
+        urls = ["https://static.crates.io/crates/crossbeam-deque/0.8.3/download"],
         strip_prefix = "crossbeam-deque-0.8.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-deque-0.8.3.bazel"),
     )
@@ -984,7 +984,7 @@
         name = "cui__crossbeam-epoch-0.9.15",
         sha256 = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-epoch/0.9.15/download"],
+        urls = ["https://static.crates.io/crates/crossbeam-epoch/0.9.15/download"],
         strip_prefix = "crossbeam-epoch-0.9.15",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-epoch-0.9.15.bazel"),
     )
@@ -994,7 +994,7 @@
         name = "cui__crossbeam-queue-0.3.8",
         sha256 = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-queue/0.3.8/download"],
+        urls = ["https://static.crates.io/crates/crossbeam-queue/0.3.8/download"],
         strip_prefix = "crossbeam-queue-0.3.8",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-queue-0.3.8.bazel"),
     )
@@ -1004,7 +1004,7 @@
         name = "cui__crossbeam-utils-0.8.16",
         sha256 = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-utils/0.8.16/download"],
+        urls = ["https://static.crates.io/crates/crossbeam-utils/0.8.16/download"],
         strip_prefix = "crossbeam-utils-0.8.16",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-utils-0.8.16.bazel"),
     )
@@ -1014,7 +1014,7 @@
         name = "cui__crypto-common-0.1.6",
         sha256 = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crypto-common/0.1.6/download"],
+        urls = ["https://static.crates.io/crates/crypto-common/0.1.6/download"],
         strip_prefix = "crypto-common-0.1.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crypto-common-0.1.6.bazel"),
     )
@@ -1024,7 +1024,7 @@
         name = "cui__deranged-0.3.9",
         sha256 = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/deranged/0.3.9/download"],
+        urls = ["https://static.crates.io/crates/deranged/0.3.9/download"],
         strip_prefix = "deranged-0.3.9",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.deranged-0.3.9.bazel"),
     )
@@ -1034,7 +1034,7 @@
         name = "cui__deunicode-0.4.3",
         sha256 = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/deunicode/0.4.3/download"],
+        urls = ["https://static.crates.io/crates/deunicode/0.4.3/download"],
         strip_prefix = "deunicode-0.4.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.deunicode-0.4.3.bazel"),
     )
@@ -1044,7 +1044,7 @@
         name = "cui__digest-0.10.7",
         sha256 = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/digest/0.10.7/download"],
+        urls = ["https://static.crates.io/crates/digest/0.10.7/download"],
         strip_prefix = "digest-0.10.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.digest-0.10.7.bazel"),
     )
@@ -1054,7 +1054,7 @@
         name = "cui__dunce-1.0.4",
         sha256 = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/dunce/1.0.4/download"],
+        urls = ["https://static.crates.io/crates/dunce/1.0.4/download"],
         strip_prefix = "dunce-1.0.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.dunce-1.0.4.bazel"),
     )
@@ -1064,7 +1064,7 @@
         name = "cui__either-1.9.0",
         sha256 = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/either/1.9.0/download"],
+        urls = ["https://static.crates.io/crates/either/1.9.0/download"],
         strip_prefix = "either-1.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.either-1.9.0.bazel"),
     )
@@ -1074,7 +1074,7 @@
         name = "cui__encoding_rs-0.8.33",
         sha256 = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/encoding_rs/0.8.33/download"],
+        urls = ["https://static.crates.io/crates/encoding_rs/0.8.33/download"],
         strip_prefix = "encoding_rs-0.8.33",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.encoding_rs-0.8.33.bazel"),
     )
@@ -1084,7 +1084,7 @@
         name = "cui__equivalent-1.0.1",
         sha256 = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/equivalent/1.0.1/download"],
+        urls = ["https://static.crates.io/crates/equivalent/1.0.1/download"],
         strip_prefix = "equivalent-1.0.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.equivalent-1.0.1.bazel"),
     )
@@ -1094,7 +1094,7 @@
         name = "cui__errno-0.3.1",
         sha256 = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/errno/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/errno/0.3.1/download"],
         strip_prefix = "errno-0.3.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.errno-0.3.1.bazel"),
     )
@@ -1104,7 +1104,7 @@
         name = "cui__errno-dragonfly-0.1.2",
         sha256 = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/errno-dragonfly/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/errno-dragonfly/0.1.2/download"],
         strip_prefix = "errno-dragonfly-0.1.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.errno-dragonfly-0.1.2.bazel"),
     )
@@ -1114,7 +1114,7 @@
         name = "cui__faster-hex-0.8.1",
         sha256 = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/faster-hex/0.8.1/download"],
+        urls = ["https://static.crates.io/crates/faster-hex/0.8.1/download"],
         strip_prefix = "faster-hex-0.8.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.faster-hex-0.8.1.bazel"),
     )
@@ -1124,7 +1124,7 @@
         name = "cui__fastrand-2.0.1",
         sha256 = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/fastrand/2.0.1/download"],
+        urls = ["https://static.crates.io/crates/fastrand/2.0.1/download"],
         strip_prefix = "fastrand-2.0.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.fastrand-2.0.1.bazel"),
     )
@@ -1134,7 +1134,7 @@
         name = "cui__filetime-0.2.22",
         sha256 = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/filetime/0.2.22/download"],
+        urls = ["https://static.crates.io/crates/filetime/0.2.22/download"],
         strip_prefix = "filetime-0.2.22",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.filetime-0.2.22.bazel"),
     )
@@ -1144,7 +1144,7 @@
         name = "cui__flate2-1.0.28",
         sha256 = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/flate2/1.0.28/download"],
+        urls = ["https://static.crates.io/crates/flate2/1.0.28/download"],
         strip_prefix = "flate2-1.0.28",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.flate2-1.0.28.bazel"),
     )
@@ -1154,19 +1154,19 @@
         name = "cui__fnv-1.0.7",
         sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/fnv/1.0.7/download"],
+        urls = ["https://static.crates.io/crates/fnv/1.0.7/download"],
         strip_prefix = "fnv-1.0.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.fnv-1.0.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__form_urlencoded-1.2.0",
-        sha256 = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652",
+        name = "cui__form_urlencoded-1.2.1",
+        sha256 = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/form_urlencoded/1.2.0/download"],
-        strip_prefix = "form_urlencoded-1.2.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.form_urlencoded-1.2.0.bazel"),
+        urls = ["https://static.crates.io/crates/form_urlencoded/1.2.1/download"],
+        strip_prefix = "form_urlencoded-1.2.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.form_urlencoded-1.2.1.bazel"),
     )
 
     maybe(
@@ -1174,7 +1174,7 @@
         name = "cui__fuchsia-cprng-0.1.1",
         sha256 = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/fuchsia-cprng/0.1.1/download"],
+        urls = ["https://static.crates.io/crates/fuchsia-cprng/0.1.1/download"],
         strip_prefix = "fuchsia-cprng-0.1.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.fuchsia-cprng-0.1.1.bazel"),
     )
@@ -1184,7 +1184,7 @@
         name = "cui__generic-array-0.14.7",
         sha256 = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/generic-array/0.14.7/download"],
+        urls = ["https://static.crates.io/crates/generic-array/0.14.7/download"],
         strip_prefix = "generic-array-0.14.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.generic-array-0.14.7.bazel"),
     )
@@ -1194,7 +1194,7 @@
         name = "cui__getrandom-0.2.10",
         sha256 = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.10/download"],
+        urls = ["https://static.crates.io/crates/getrandom/0.2.10/download"],
         strip_prefix = "getrandom-0.2.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.getrandom-0.2.10.bazel"),
     )
@@ -1204,7 +1204,7 @@
         name = "cui__gix-0.54.1",
         sha256 = "ad6d32e74454459690d57d18ea4ebec1629936e6b130b51d12cb4a81630ac953",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix/0.54.1/download"],
+        urls = ["https://static.crates.io/crates/gix/0.54.1/download"],
         strip_prefix = "gix-0.54.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-0.54.1.bazel"),
     )
@@ -1214,7 +1214,7 @@
         name = "cui__gix-actor-0.27.0",
         sha256 = "08c60e982c5290897122d4e2622447f014a2dadd5a18cb73d50bb91b31645e27",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-actor/0.27.0/download"],
+        urls = ["https://static.crates.io/crates/gix-actor/0.27.0/download"],
         strip_prefix = "gix-actor-0.27.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-actor-0.27.0.bazel"),
     )
@@ -1224,7 +1224,7 @@
         name = "cui__gix-attributes-0.19.0",
         sha256 = "2451665e70709ba4753b623ef97511ee98c4a73816b2c5b5df25678d607ed820",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-attributes/0.19.0/download"],
+        urls = ["https://static.crates.io/crates/gix-attributes/0.19.0/download"],
         strip_prefix = "gix-attributes-0.19.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-attributes-0.19.0.bazel"),
     )
@@ -1234,7 +1234,7 @@
         name = "cui__gix-bitmap-0.2.7",
         sha256 = "0ccab4bc576844ddb51b78d81b4a42d73e6229660fa614dfc3d3999c874d1959",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-bitmap/0.2.7/download"],
+        urls = ["https://static.crates.io/crates/gix-bitmap/0.2.7/download"],
         strip_prefix = "gix-bitmap-0.2.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-bitmap-0.2.7.bazel"),
     )
@@ -1244,7 +1244,7 @@
         name = "cui__gix-chunk-0.4.4",
         sha256 = "5b42ea64420f7994000130328f3c7a2038f639120518870436d31b8bde704493",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-chunk/0.4.4/download"],
+        urls = ["https://static.crates.io/crates/gix-chunk/0.4.4/download"],
         strip_prefix = "gix-chunk-0.4.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-chunk-0.4.4.bazel"),
     )
@@ -1254,7 +1254,7 @@
         name = "cui__gix-command-0.2.10",
         sha256 = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-command/0.2.10/download"],
+        urls = ["https://static.crates.io/crates/gix-command/0.2.10/download"],
         strip_prefix = "gix-command-0.2.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-command-0.2.10.bazel"),
     )
@@ -1264,7 +1264,7 @@
         name = "cui__gix-commitgraph-0.21.0",
         sha256 = "e75a975ee22cf0a002bfe9b5d5cb3d2a88e263a8a178cd7509133cff10f4df8a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-commitgraph/0.21.0/download"],
+        urls = ["https://static.crates.io/crates/gix-commitgraph/0.21.0/download"],
         strip_prefix = "gix-commitgraph-0.21.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-commitgraph-0.21.0.bazel"),
     )
@@ -1274,7 +1274,7 @@
         name = "cui__gix-config-0.30.0",
         sha256 = "c171514b40487d3f677ae37efc0f45ac980e3169f23c27eb30a70b47fdf88ab5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-config/0.30.0/download"],
+        urls = ["https://static.crates.io/crates/gix-config/0.30.0/download"],
         strip_prefix = "gix-config-0.30.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-config-0.30.0.bazel"),
     )
@@ -1284,7 +1284,7 @@
         name = "cui__gix-config-value-0.14.0",
         sha256 = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-config-value/0.14.0/download"],
+        urls = ["https://static.crates.io/crates/gix-config-value/0.14.0/download"],
         strip_prefix = "gix-config-value-0.14.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-config-value-0.14.0.bazel"),
     )
@@ -1294,7 +1294,7 @@
         name = "cui__gix-credentials-0.20.0",
         sha256 = "46900b884cc5af6a6c141ee741607c0c651a4e1d33614b8d888a1ba81cc0bc8a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-credentials/0.20.0/download"],
+        urls = ["https://static.crates.io/crates/gix-credentials/0.20.0/download"],
         strip_prefix = "gix-credentials-0.20.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-credentials-0.20.0.bazel"),
     )
@@ -1304,7 +1304,7 @@
         name = "cui__gix-date-0.8.0",
         sha256 = "fc7df669639582dc7c02737642f76890b03b5544e141caba68a7d6b4eb551e0d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-date/0.8.0/download"],
+        urls = ["https://static.crates.io/crates/gix-date/0.8.0/download"],
         strip_prefix = "gix-date-0.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-date-0.8.0.bazel"),
     )
@@ -1314,7 +1314,7 @@
         name = "cui__gix-diff-0.36.0",
         sha256 = "788ddb152c388206e81f36bcbb574e7ed7827c27d8fa62227b34edc333d8928c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-diff/0.36.0/download"],
+        urls = ["https://static.crates.io/crates/gix-diff/0.36.0/download"],
         strip_prefix = "gix-diff-0.36.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-diff-0.36.0.bazel"),
     )
@@ -1324,7 +1324,7 @@
         name = "cui__gix-discover-0.25.0",
         sha256 = "69507643d75a0ea9a402fcf73ced517d2b95cc95385904ac09d03e0b952fde33",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-discover/0.25.0/download"],
+        urls = ["https://static.crates.io/crates/gix-discover/0.25.0/download"],
         strip_prefix = "gix-discover-0.25.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-discover-0.25.0.bazel"),
     )
@@ -1334,7 +1334,7 @@
         name = "cui__gix-features-0.35.0",
         sha256 = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-features/0.35.0/download"],
+        urls = ["https://static.crates.io/crates/gix-features/0.35.0/download"],
         strip_prefix = "gix-features-0.35.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-features-0.35.0.bazel"),
     )
@@ -1344,7 +1344,7 @@
         name = "cui__gix-filter-0.5.0",
         sha256 = "1be40d28cd41445bb6cd52c4d847d915900e5466f7433eaee6a9e0a3d1d88b08",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-filter/0.5.0/download"],
+        urls = ["https://static.crates.io/crates/gix-filter/0.5.0/download"],
         strip_prefix = "gix-filter-0.5.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-filter-0.5.0.bazel"),
     )
@@ -1354,7 +1354,7 @@
         name = "cui__gix-fs-0.7.0",
         sha256 = "09815faba62fe9b32d918b75a554686c98e43f7d48c43a80df58eb718e5c6635",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-fs/0.7.0/download"],
+        urls = ["https://static.crates.io/crates/gix-fs/0.7.0/download"],
         strip_prefix = "gix-fs-0.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-fs-0.7.0.bazel"),
     )
@@ -1364,7 +1364,7 @@
         name = "cui__gix-glob-0.13.0",
         sha256 = "a9d76e85f11251dcf751d2c5e918a14f562db5be6f727fd24775245653e9b19d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-glob/0.13.0/download"],
+        urls = ["https://static.crates.io/crates/gix-glob/0.13.0/download"],
         strip_prefix = "gix-glob-0.13.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-glob-0.13.0.bazel"),
     )
@@ -1374,7 +1374,7 @@
         name = "cui__gix-hash-0.13.1",
         sha256 = "1884c7b41ea0875217c1be9ce91322f90bde433e91d374d0e1276073a51ccc60",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-hash/0.13.1/download"],
+        urls = ["https://static.crates.io/crates/gix-hash/0.13.1/download"],
         strip_prefix = "gix-hash-0.13.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-hash-0.13.1.bazel"),
     )
@@ -1384,7 +1384,7 @@
         name = "cui__gix-hashtable-0.4.0",
         sha256 = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-hashtable/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/gix-hashtable/0.4.0/download"],
         strip_prefix = "gix-hashtable-0.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-hashtable-0.4.0.bazel"),
     )
@@ -1394,7 +1394,7 @@
         name = "cui__gix-ignore-0.8.0",
         sha256 = "b048f443a1f6b02da4205c34d2e287e3fd45d75e8e2f06cfb216630ea9bff5e3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-ignore/0.8.0/download"],
+        urls = ["https://static.crates.io/crates/gix-ignore/0.8.0/download"],
         strip_prefix = "gix-ignore-0.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-ignore-0.8.0.bazel"),
     )
@@ -1404,7 +1404,7 @@
         name = "cui__gix-index-0.25.0",
         sha256 = "f54d63a9d13c13088f41f5a3accbec284e492ac8f4f707fcc307c139622e17b7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-index/0.25.0/download"],
+        urls = ["https://static.crates.io/crates/gix-index/0.25.0/download"],
         strip_prefix = "gix-index-0.25.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-index-0.25.0.bazel"),
     )
@@ -1414,7 +1414,7 @@
         name = "cui__gix-lock-10.0.0",
         sha256 = "47fc96fa8b6b6d33555021907c81eb3b27635daecf6e630630bdad44f8feaa95",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-lock/10.0.0/download"],
+        urls = ["https://static.crates.io/crates/gix-lock/10.0.0/download"],
         strip_prefix = "gix-lock-10.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-lock-10.0.0.bazel"),
     )
@@ -1424,7 +1424,7 @@
         name = "cui__gix-macros-0.1.0",
         sha256 = "9d8acb5ee668d55f0f2d19a320a3f9ef67a6999ad483e11135abcc2464ed18b6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-macros/0.1.0/download"],
+        urls = ["https://static.crates.io/crates/gix-macros/0.1.0/download"],
         strip_prefix = "gix-macros-0.1.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-macros-0.1.0.bazel"),
     )
@@ -1434,7 +1434,7 @@
         name = "cui__gix-negotiate-0.8.0",
         sha256 = "6f1697bf9911c6d1b8d709b9e6ef718cb5ea5821a1b7991520125a8134448004",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-negotiate/0.8.0/download"],
+        urls = ["https://static.crates.io/crates/gix-negotiate/0.8.0/download"],
         strip_prefix = "gix-negotiate-0.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-negotiate-0.8.0.bazel"),
     )
@@ -1444,7 +1444,7 @@
         name = "cui__gix-object-0.37.0",
         sha256 = "1e7e19616c67967374137bae83e950e9b518a9ea8a605069bd6716ada357fd6f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-object/0.37.0/download"],
+        urls = ["https://static.crates.io/crates/gix-object/0.37.0/download"],
         strip_prefix = "gix-object-0.37.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-object-0.37.0.bazel"),
     )
@@ -1454,7 +1454,7 @@
         name = "cui__gix-odb-0.53.0",
         sha256 = "8d6a392c6ba3a2f133cdc63120e9bc7aec81eef763db372c817de31febfe64bf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-odb/0.53.0/download"],
+        urls = ["https://static.crates.io/crates/gix-odb/0.53.0/download"],
         strip_prefix = "gix-odb-0.53.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-odb-0.53.0.bazel"),
     )
@@ -1464,7 +1464,7 @@
         name = "cui__gix-pack-0.43.0",
         sha256 = "7536203a45b31e1bc5694bbf90ba8da1b736c77040dd6a520db369f371eb1ab3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-pack/0.43.0/download"],
+        urls = ["https://static.crates.io/crates/gix-pack/0.43.0/download"],
         strip_prefix = "gix-pack-0.43.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-pack-0.43.0.bazel"),
     )
@@ -1474,7 +1474,7 @@
         name = "cui__gix-packetline-0.16.7",
         sha256 = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-packetline/0.16.7/download"],
+        urls = ["https://static.crates.io/crates/gix-packetline/0.16.7/download"],
         strip_prefix = "gix-packetline-0.16.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-packetline-0.16.7.bazel"),
     )
@@ -1484,7 +1484,7 @@
         name = "cui__gix-packetline-blocking-0.16.6",
         sha256 = "7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-packetline-blocking/0.16.6/download"],
+        urls = ["https://static.crates.io/crates/gix-packetline-blocking/0.16.6/download"],
         strip_prefix = "gix-packetline-blocking-0.16.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-packetline-blocking-0.16.6.bazel"),
     )
@@ -1494,7 +1494,7 @@
         name = "cui__gix-path-0.10.0",
         sha256 = "6a1d370115171e3ae03c5c6d4f7d096f2981a40ddccb98dfd704c773530ba73b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-path/0.10.0/download"],
+        urls = ["https://static.crates.io/crates/gix-path/0.10.0/download"],
         strip_prefix = "gix-path-0.10.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-path-0.10.0.bazel"),
     )
@@ -1504,7 +1504,7 @@
         name = "cui__gix-pathspec-0.3.0",
         sha256 = "c3e26c9b47c51be73f98d38c84494bd5fb99334c5d6fda14ef5d036d50a9e5fd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-pathspec/0.3.0/download"],
+        urls = ["https://static.crates.io/crates/gix-pathspec/0.3.0/download"],
         strip_prefix = "gix-pathspec-0.3.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-pathspec-0.3.0.bazel"),
     )
@@ -1514,7 +1514,7 @@
         name = "cui__gix-prompt-0.7.0",
         sha256 = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-prompt/0.7.0/download"],
+        urls = ["https://static.crates.io/crates/gix-prompt/0.7.0/download"],
         strip_prefix = "gix-prompt-0.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-prompt-0.7.0.bazel"),
     )
@@ -1524,7 +1524,7 @@
         name = "cui__gix-protocol-0.40.0",
         sha256 = "cc7b700dc20cc9be8a5130a1fd7e10c34117ffa7068431c8c24d963f0a2e0c9b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-protocol/0.40.0/download"],
+        urls = ["https://static.crates.io/crates/gix-protocol/0.40.0/download"],
         strip_prefix = "gix-protocol-0.40.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-protocol-0.40.0.bazel"),
     )
@@ -1534,7 +1534,7 @@
         name = "cui__gix-quote-0.4.7",
         sha256 = "475c86a97dd0127ba4465fbb239abac9ea10e68301470c9791a6dd5351cdc905",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-quote/0.4.7/download"],
+        urls = ["https://static.crates.io/crates/gix-quote/0.4.7/download"],
         strip_prefix = "gix-quote-0.4.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-quote-0.4.7.bazel"),
     )
@@ -1544,7 +1544,7 @@
         name = "cui__gix-ref-0.37.0",
         sha256 = "22e6b749660b613641769edc1954132eb8071a13c32224891686091bef078de4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-ref/0.37.0/download"],
+        urls = ["https://static.crates.io/crates/gix-ref/0.37.0/download"],
         strip_prefix = "gix-ref-0.37.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-ref-0.37.0.bazel"),
     )
@@ -1554,7 +1554,7 @@
         name = "cui__gix-refspec-0.18.0",
         sha256 = "0895cb7b1e70f3c3bd4550c329e9f5caf2975f97fcd4238e05754e72208ef61e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-refspec/0.18.0/download"],
+        urls = ["https://static.crates.io/crates/gix-refspec/0.18.0/download"],
         strip_prefix = "gix-refspec-0.18.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-refspec-0.18.0.bazel"),
     )
@@ -1564,7 +1564,7 @@
         name = "cui__gix-revision-0.22.0",
         sha256 = "c8c4b15cf2ab7a35f5bcb3ef146187c8d36df0177e171ca061913cbaaa890e89",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-revision/0.22.0/download"],
+        urls = ["https://static.crates.io/crates/gix-revision/0.22.0/download"],
         strip_prefix = "gix-revision-0.22.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-revision-0.22.0.bazel"),
     )
@@ -1574,7 +1574,7 @@
         name = "cui__gix-revwalk-0.8.0",
         sha256 = "e9870c6b1032f2084567710c3b2106ac603377f8d25766b8a6b7c33e6e3ca279",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-revwalk/0.8.0/download"],
+        urls = ["https://static.crates.io/crates/gix-revwalk/0.8.0/download"],
         strip_prefix = "gix-revwalk-0.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-revwalk-0.8.0.bazel"),
     )
@@ -1584,7 +1584,7 @@
         name = "cui__gix-sec-0.10.0",
         sha256 = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-sec/0.10.0/download"],
+        urls = ["https://static.crates.io/crates/gix-sec/0.10.0/download"],
         strip_prefix = "gix-sec-0.10.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-sec-0.10.0.bazel"),
     )
@@ -1594,7 +1594,7 @@
         name = "cui__gix-submodule-0.4.0",
         sha256 = "dd0150e82e9282d3f2ab2dd57a22f9f6c3447b9d9856e5321ac92d38e3e0e2b7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-submodule/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/gix-submodule/0.4.0/download"],
         strip_prefix = "gix-submodule-0.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-submodule-0.4.0.bazel"),
     )
@@ -1604,7 +1604,7 @@
         name = "cui__gix-tempfile-10.0.0",
         sha256 = "5ae0978f3e11dc57290ee75ac2477c815bca1ce2fa7ed5dc5f16db067410ac4d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-tempfile/10.0.0/download"],
+        urls = ["https://static.crates.io/crates/gix-tempfile/10.0.0/download"],
         strip_prefix = "gix-tempfile-10.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-tempfile-10.0.0.bazel"),
     )
@@ -1614,7 +1614,7 @@
         name = "cui__gix-trace-0.1.3",
         sha256 = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-trace/0.1.3/download"],
+        urls = ["https://static.crates.io/crates/gix-trace/0.1.3/download"],
         strip_prefix = "gix-trace-0.1.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-trace-0.1.3.bazel"),
     )
@@ -1624,7 +1624,7 @@
         name = "cui__gix-transport-0.37.0",
         sha256 = "b9ec726e6a245e68ace59a34126a1d679de60360676612985e70b0d3b102fb4e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-transport/0.37.0/download"],
+        urls = ["https://static.crates.io/crates/gix-transport/0.37.0/download"],
         strip_prefix = "gix-transport-0.37.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-transport-0.37.0.bazel"),
     )
@@ -1634,7 +1634,7 @@
         name = "cui__gix-traverse-0.33.0",
         sha256 = "22ef04ab3643acba289b5cedd25d6f53c0430770b1d689d1d654511e6fb81ba0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-traverse/0.33.0/download"],
+        urls = ["https://static.crates.io/crates/gix-traverse/0.33.0/download"],
         strip_prefix = "gix-traverse-0.33.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-traverse-0.33.0.bazel"),
     )
@@ -1644,7 +1644,7 @@
         name = "cui__gix-url-0.24.0",
         sha256 = "6125ecf46e8c68bf7202da6cad239831daebf0247ffbab30210d72f3856e420f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-url/0.24.0/download"],
+        urls = ["https://static.crates.io/crates/gix-url/0.24.0/download"],
         strip_prefix = "gix-url-0.24.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-url-0.24.0.bazel"),
     )
@@ -1654,7 +1654,7 @@
         name = "cui__gix-utils-0.1.5",
         sha256 = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-utils/0.1.5/download"],
+        urls = ["https://static.crates.io/crates/gix-utils/0.1.5/download"],
         strip_prefix = "gix-utils-0.1.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-utils-0.1.5.bazel"),
     )
@@ -1664,7 +1664,7 @@
         name = "cui__gix-validate-0.8.0",
         sha256 = "e05cab2b03a45b866156e052aa38619f4ece4adcb2f79978bfc249bc3b21b8c5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-validate/0.8.0/download"],
+        urls = ["https://static.crates.io/crates/gix-validate/0.8.0/download"],
         strip_prefix = "gix-validate-0.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-validate-0.8.0.bazel"),
     )
@@ -1674,7 +1674,7 @@
         name = "cui__gix-worktree-0.26.0",
         sha256 = "9f5e32972801bd82d56609e6fc84efc358fa1f11f25c5e83b7807ee2280f14fe",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/gix-worktree/0.26.0/download"],
+        urls = ["https://static.crates.io/crates/gix-worktree/0.26.0/download"],
         strip_prefix = "gix-worktree-0.26.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.gix-worktree-0.26.0.bazel"),
     )
@@ -1684,7 +1684,7 @@
         name = "cui__globset-0.4.11",
         sha256 = "1391ab1f92ffcc08911957149833e682aa3fe252b9f45f966d2ef972274c97df",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/globset/0.4.11/download"],
+        urls = ["https://static.crates.io/crates/globset/0.4.11/download"],
         strip_prefix = "globset-0.4.11",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.globset-0.4.11.bazel"),
     )
@@ -1694,7 +1694,7 @@
         name = "cui__globwalk-0.8.1",
         sha256 = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/globwalk/0.8.1/download"],
+        urls = ["https://static.crates.io/crates/globwalk/0.8.1/download"],
         strip_prefix = "globwalk-0.8.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.globwalk-0.8.1.bazel"),
     )
@@ -1704,7 +1704,7 @@
         name = "cui__hashbrown-0.14.3",
         sha256 = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hashbrown/0.14.3/download"],
+        urls = ["https://static.crates.io/crates/hashbrown/0.14.3/download"],
         strip_prefix = "hashbrown-0.14.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.hashbrown-0.14.3.bazel"),
     )
@@ -1714,7 +1714,7 @@
         name = "cui__heck-0.4.1",
         sha256 = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/heck/0.4.1/download"],
+        urls = ["https://static.crates.io/crates/heck/0.4.1/download"],
         strip_prefix = "heck-0.4.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.heck-0.4.1.bazel"),
     )
@@ -1724,7 +1724,7 @@
         name = "cui__hermit-abi-0.3.2",
         sha256 = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.3.2/download"],
+        urls = ["https://static.crates.io/crates/hermit-abi/0.3.2/download"],
         strip_prefix = "hermit-abi-0.3.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.hermit-abi-0.3.2.bazel"),
     )
@@ -1734,7 +1734,7 @@
         name = "cui__hex-0.4.3",
         sha256 = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hex/0.4.3/download"],
+        urls = ["https://static.crates.io/crates/hex/0.4.3/download"],
         strip_prefix = "hex-0.4.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.hex-0.4.3.bazel"),
     )
@@ -1744,7 +1744,7 @@
         name = "cui__home-0.5.5",
         sha256 = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/home/0.5.5/download"],
+        urls = ["https://static.crates.io/crates/home/0.5.5/download"],
         strip_prefix = "home-0.5.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.home-0.5.5.bazel"),
     )
@@ -1754,7 +1754,7 @@
         name = "cui__humansize-2.1.3",
         sha256 = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/humansize/2.1.3/download"],
+        urls = ["https://static.crates.io/crates/humansize/2.1.3/download"],
         strip_prefix = "humansize-2.1.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.humansize-2.1.3.bazel"),
     )
@@ -1764,7 +1764,7 @@
         name = "cui__iana-time-zone-0.1.57",
         sha256 = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/iana-time-zone/0.1.57/download"],
+        urls = ["https://static.crates.io/crates/iana-time-zone/0.1.57/download"],
         strip_prefix = "iana-time-zone-0.1.57",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.iana-time-zone-0.1.57.bazel"),
     )
@@ -1774,19 +1774,19 @@
         name = "cui__iana-time-zone-haiku-0.1.2",
         sha256 = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/iana-time-zone-haiku/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download"],
         strip_prefix = "iana-time-zone-haiku-0.1.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.iana-time-zone-haiku-0.1.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__idna-0.4.0",
-        sha256 = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c",
+        name = "cui__idna-0.5.0",
+        sha256 = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/idna/0.4.0/download"],
-        strip_prefix = "idna-0.4.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.idna-0.4.0.bazel"),
+        urls = ["https://static.crates.io/crates/idna/0.5.0/download"],
+        strip_prefix = "idna-0.5.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.idna-0.5.0.bazel"),
     )
 
     maybe(
@@ -1794,7 +1794,7 @@
         name = "cui__ignore-0.4.18",
         sha256 = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ignore/0.4.18/download"],
+        urls = ["https://static.crates.io/crates/ignore/0.4.18/download"],
         strip_prefix = "ignore-0.4.18",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ignore-0.4.18.bazel"),
     )
@@ -1804,7 +1804,7 @@
         name = "cui__indexmap-2.1.0",
         sha256 = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/indexmap/2.1.0/download"],
+        urls = ["https://static.crates.io/crates/indexmap/2.1.0/download"],
         strip_prefix = "indexmap-2.1.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.indexmap-2.1.0.bazel"),
     )
@@ -1814,7 +1814,7 @@
         name = "cui__indoc-2.0.4",
         sha256 = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/indoc/2.0.4/download"],
+        urls = ["https://static.crates.io/crates/indoc/2.0.4/download"],
         strip_prefix = "indoc-2.0.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.indoc-2.0.4.bazel"),
     )
@@ -1824,7 +1824,7 @@
         name = "cui__io-lifetimes-1.0.11",
         sha256 = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/io-lifetimes/1.0.11/download"],
+        urls = ["https://static.crates.io/crates/io-lifetimes/1.0.11/download"],
         strip_prefix = "io-lifetimes-1.0.11",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.io-lifetimes-1.0.11.bazel"),
     )
@@ -1834,7 +1834,7 @@
         name = "cui__is-terminal-0.4.7",
         sha256 = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/is-terminal/0.4.7/download"],
+        urls = ["https://static.crates.io/crates/is-terminal/0.4.7/download"],
         strip_prefix = "is-terminal-0.4.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.is-terminal-0.4.7.bazel"),
     )
@@ -1844,7 +1844,7 @@
         name = "cui__itertools-0.12.0",
         sha256 = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/itertools/0.12.0/download"],
+        urls = ["https://static.crates.io/crates/itertools/0.12.0/download"],
         strip_prefix = "itertools-0.12.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.itertools-0.12.0.bazel"),
     )
@@ -1854,7 +1854,7 @@
         name = "cui__itoa-1.0.8",
         sha256 = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/itoa/1.0.8/download"],
+        urls = ["https://static.crates.io/crates/itoa/1.0.8/download"],
         strip_prefix = "itoa-1.0.8",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.itoa-1.0.8.bazel"),
     )
@@ -1864,7 +1864,7 @@
         name = "cui__js-sys-0.3.64",
         sha256 = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/js-sys/0.3.64/download"],
+        urls = ["https://static.crates.io/crates/js-sys/0.3.64/download"],
         strip_prefix = "js-sys-0.3.64",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.js-sys-0.3.64.bazel"),
     )
@@ -1874,7 +1874,7 @@
         name = "cui__jwalk-0.8.1",
         sha256 = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/jwalk/0.8.1/download"],
+        urls = ["https://static.crates.io/crates/jwalk/0.8.1/download"],
         strip_prefix = "jwalk-0.8.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.jwalk-0.8.1.bazel"),
     )
@@ -1884,7 +1884,7 @@
         name = "cui__lazy_static-1.4.0",
         sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        urls = ["https://static.crates.io/crates/lazy_static/1.4.0/download"],
         strip_prefix = "lazy_static-1.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
     )
@@ -1894,7 +1894,7 @@
         name = "cui__libc-0.2.149",
         sha256 = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libc/0.2.149/download"],
+        urls = ["https://static.crates.io/crates/libc/0.2.149/download"],
         strip_prefix = "libc-0.2.149",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libc-0.2.149.bazel"),
     )
@@ -1904,7 +1904,7 @@
         name = "cui__libm-0.2.7",
         sha256 = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libm/0.2.7/download"],
+        urls = ["https://static.crates.io/crates/libm/0.2.7/download"],
         strip_prefix = "libm-0.2.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libm-0.2.7.bazel"),
     )
@@ -1914,7 +1914,7 @@
         name = "cui__linux-raw-sys-0.3.8",
         sha256 = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/linux-raw-sys/0.3.8/download"],
+        urls = ["https://static.crates.io/crates/linux-raw-sys/0.3.8/download"],
         strip_prefix = "linux-raw-sys-0.3.8",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.linux-raw-sys-0.3.8.bazel"),
     )
@@ -1924,7 +1924,7 @@
         name = "cui__linux-raw-sys-0.4.10",
         sha256 = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/linux-raw-sys/0.4.10/download"],
+        urls = ["https://static.crates.io/crates/linux-raw-sys/0.4.10/download"],
         strip_prefix = "linux-raw-sys-0.4.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.linux-raw-sys-0.4.10.bazel"),
     )
@@ -1934,7 +1934,7 @@
         name = "cui__lock_api-0.4.11",
         sha256 = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lock_api/0.4.11/download"],
+        urls = ["https://static.crates.io/crates/lock_api/0.4.11/download"],
         strip_prefix = "lock_api-0.4.11",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.lock_api-0.4.11.bazel"),
     )
@@ -1944,7 +1944,7 @@
         name = "cui__log-0.4.19",
         sha256 = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/log/0.4.19/download"],
+        urls = ["https://static.crates.io/crates/log/0.4.19/download"],
         strip_prefix = "log-0.4.19",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.log-0.4.19.bazel"),
     )
@@ -1954,7 +1954,7 @@
         name = "cui__maplit-1.0.2",
         sha256 = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/maplit/1.0.2/download"],
+        urls = ["https://static.crates.io/crates/maplit/1.0.2/download"],
         strip_prefix = "maplit-1.0.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.maplit-1.0.2.bazel"),
     )
@@ -1964,7 +1964,7 @@
         name = "cui__maybe-async-0.2.7",
         sha256 = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/maybe-async/0.2.7/download"],
+        urls = ["https://static.crates.io/crates/maybe-async/0.2.7/download"],
         strip_prefix = "maybe-async-0.2.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.maybe-async-0.2.7.bazel"),
     )
@@ -1974,7 +1974,7 @@
         name = "cui__memchr-2.6.4",
         sha256 = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memchr/2.6.4/download"],
+        urls = ["https://static.crates.io/crates/memchr/2.6.4/download"],
         strip_prefix = "memchr-2.6.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.memchr-2.6.4.bazel"),
     )
@@ -1984,7 +1984,7 @@
         name = "cui__memmap2-0.7.1",
         sha256 = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memmap2/0.7.1/download"],
+        urls = ["https://static.crates.io/crates/memmap2/0.7.1/download"],
         strip_prefix = "memmap2-0.7.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.memmap2-0.7.1.bazel"),
     )
@@ -1994,7 +1994,7 @@
         name = "cui__memoffset-0.9.0",
         sha256 = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memoffset/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/memoffset/0.9.0/download"],
         strip_prefix = "memoffset-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.memoffset-0.9.0.bazel"),
     )
@@ -2004,7 +2004,7 @@
         name = "cui__miniz_oxide-0.7.1",
         sha256 = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/miniz_oxide/0.7.1/download"],
+        urls = ["https://static.crates.io/crates/miniz_oxide/0.7.1/download"],
         strip_prefix = "miniz_oxide-0.7.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.miniz_oxide-0.7.1.bazel"),
     )
@@ -2014,7 +2014,7 @@
         name = "cui__normpath-1.1.1",
         sha256 = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/normpath/1.1.1/download"],
+        urls = ["https://static.crates.io/crates/normpath/1.1.1/download"],
         strip_prefix = "normpath-1.1.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.normpath-1.1.1.bazel"),
     )
@@ -2024,7 +2024,7 @@
         name = "cui__nu-ansi-term-0.46.0",
         sha256 = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/nu-ansi-term/0.46.0/download"],
+        urls = ["https://static.crates.io/crates/nu-ansi-term/0.46.0/download"],
         strip_prefix = "nu-ansi-term-0.46.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.nu-ansi-term-0.46.0.bazel"),
     )
@@ -2034,7 +2034,7 @@
         name = "cui__num-0.1.42",
         sha256 = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num/0.1.42/download"],
+        urls = ["https://static.crates.io/crates/num/0.1.42/download"],
         strip_prefix = "num-0.1.42",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-0.1.42.bazel"),
     )
@@ -2044,7 +2044,7 @@
         name = "cui__num-bigint-0.1.44",
         sha256 = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-bigint/0.1.44/download"],
+        urls = ["https://static.crates.io/crates/num-bigint/0.1.44/download"],
         strip_prefix = "num-bigint-0.1.44",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-bigint-0.1.44.bazel"),
     )
@@ -2054,17 +2054,27 @@
         name = "cui__num-complex-0.1.43",
         sha256 = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-complex/0.1.43/download"],
+        urls = ["https://static.crates.io/crates/num-complex/0.1.43/download"],
         strip_prefix = "num-complex-0.1.43",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-complex-0.1.43.bazel"),
     )
 
     maybe(
         http_archive,
+        name = "cui__num-conv-0.1.0",
+        sha256 = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9",
+        type = "tar.gz",
+        urls = ["https://static.crates.io/crates/num-conv/0.1.0/download"],
+        strip_prefix = "num-conv-0.1.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-conv-0.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
         name = "cui__num-integer-0.1.45",
         sha256 = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-integer/0.1.45/download"],
+        urls = ["https://static.crates.io/crates/num-integer/0.1.45/download"],
         strip_prefix = "num-integer-0.1.45",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-integer-0.1.45.bazel"),
     )
@@ -2074,7 +2084,7 @@
         name = "cui__num-iter-0.1.43",
         sha256 = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-iter/0.1.43/download"],
+        urls = ["https://static.crates.io/crates/num-iter/0.1.43/download"],
         strip_prefix = "num-iter-0.1.43",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-iter-0.1.43.bazel"),
     )
@@ -2084,7 +2094,7 @@
         name = "cui__num-rational-0.1.42",
         sha256 = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-rational/0.1.42/download"],
+        urls = ["https://static.crates.io/crates/num-rational/0.1.42/download"],
         strip_prefix = "num-rational-0.1.42",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-rational-0.1.42.bazel"),
     )
@@ -2094,7 +2104,7 @@
         name = "cui__num-traits-0.2.15",
         sha256 = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-traits/0.2.15/download"],
+        urls = ["https://static.crates.io/crates/num-traits/0.2.15/download"],
         strip_prefix = "num-traits-0.2.15",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-traits-0.2.15.bazel"),
     )
@@ -2104,19 +2114,19 @@
         name = "cui__num_threads-0.1.6",
         sha256 = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num_threads/0.1.6/download"],
+        urls = ["https://static.crates.io/crates/num_threads/0.1.6/download"],
         strip_prefix = "num_threads-0.1.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num_threads-0.1.6.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__once_cell-1.18.0",
-        sha256 = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d",
+        name = "cui__once_cell-1.19.0",
+        sha256 = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/once_cell/1.18.0/download"],
-        strip_prefix = "once_cell-1.18.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.once_cell-1.18.0.bazel"),
+        urls = ["https://static.crates.io/crates/once_cell/1.19.0/download"],
+        strip_prefix = "once_cell-1.19.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.once_cell-1.19.0.bazel"),
     )
 
     maybe(
@@ -2124,7 +2134,7 @@
         name = "cui__overload-0.1.1",
         sha256 = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/overload/0.1.1/download"],
+        urls = ["https://static.crates.io/crates/overload/0.1.1/download"],
         strip_prefix = "overload-0.1.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.overload-0.1.1.bazel"),
     )
@@ -2134,7 +2144,7 @@
         name = "cui__parking_lot-0.12.1",
         sha256 = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/parking_lot/0.12.1/download"],
+        urls = ["https://static.crates.io/crates/parking_lot/0.12.1/download"],
         strip_prefix = "parking_lot-0.12.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.parking_lot-0.12.1.bazel"),
     )
@@ -2144,7 +2154,7 @@
         name = "cui__parking_lot_core-0.9.9",
         sha256 = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/parking_lot_core/0.9.9/download"],
+        urls = ["https://static.crates.io/crates/parking_lot_core/0.9.9/download"],
         strip_prefix = "parking_lot_core-0.9.9",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.parking_lot_core-0.9.9.bazel"),
     )
@@ -2154,7 +2164,7 @@
         name = "cui__parse-zoneinfo-0.3.0",
         sha256 = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/parse-zoneinfo/0.3.0/download"],
+        urls = ["https://static.crates.io/crates/parse-zoneinfo/0.3.0/download"],
         strip_prefix = "parse-zoneinfo-0.3.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.parse-zoneinfo-0.3.0.bazel"),
     )
@@ -2164,19 +2174,19 @@
         name = "cui__pathdiff-0.2.1",
         sha256 = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pathdiff/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/pathdiff/0.2.1/download"],
         strip_prefix = "pathdiff-0.2.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pathdiff-0.2.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__percent-encoding-2.3.0",
-        sha256 = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94",
+        name = "cui__percent-encoding-2.3.1",
+        sha256 = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/percent-encoding/2.3.0/download"],
-        strip_prefix = "percent-encoding-2.3.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.percent-encoding-2.3.0.bazel"),
+        urls = ["https://static.crates.io/crates/percent-encoding/2.3.1/download"],
+        strip_prefix = "percent-encoding-2.3.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.percent-encoding-2.3.1.bazel"),
     )
 
     maybe(
@@ -2184,7 +2194,7 @@
         name = "cui__pest-2.7.0",
         sha256 = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pest/2.7.0/download"],
+        urls = ["https://static.crates.io/crates/pest/2.7.0/download"],
         strip_prefix = "pest-2.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pest-2.7.0.bazel"),
     )
@@ -2194,7 +2204,7 @@
         name = "cui__pest_derive-2.7.0",
         sha256 = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pest_derive/2.7.0/download"],
+        urls = ["https://static.crates.io/crates/pest_derive/2.7.0/download"],
         strip_prefix = "pest_derive-2.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pest_derive-2.7.0.bazel"),
     )
@@ -2204,7 +2214,7 @@
         name = "cui__pest_generator-2.7.0",
         sha256 = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pest_generator/2.7.0/download"],
+        urls = ["https://static.crates.io/crates/pest_generator/2.7.0/download"],
         strip_prefix = "pest_generator-2.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pest_generator-2.7.0.bazel"),
     )
@@ -2214,7 +2224,7 @@
         name = "cui__pest_meta-2.7.0",
         sha256 = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pest_meta/2.7.0/download"],
+        urls = ["https://static.crates.io/crates/pest_meta/2.7.0/download"],
         strip_prefix = "pest_meta-2.7.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pest_meta-2.7.0.bazel"),
     )
@@ -2224,7 +2234,7 @@
         name = "cui__phf-0.11.2",
         sha256 = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/phf/0.11.2/download"],
+        urls = ["https://static.crates.io/crates/phf/0.11.2/download"],
         strip_prefix = "phf-0.11.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.phf-0.11.2.bazel"),
     )
@@ -2234,7 +2244,7 @@
         name = "cui__phf_codegen-0.11.2",
         sha256 = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/phf_codegen/0.11.2/download"],
+        urls = ["https://static.crates.io/crates/phf_codegen/0.11.2/download"],
         strip_prefix = "phf_codegen-0.11.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.phf_codegen-0.11.2.bazel"),
     )
@@ -2244,7 +2254,7 @@
         name = "cui__phf_generator-0.11.2",
         sha256 = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/phf_generator/0.11.2/download"],
+        urls = ["https://static.crates.io/crates/phf_generator/0.11.2/download"],
         strip_prefix = "phf_generator-0.11.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.phf_generator-0.11.2.bazel"),
     )
@@ -2254,7 +2264,7 @@
         name = "cui__phf_shared-0.11.2",
         sha256 = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/phf_shared/0.11.2/download"],
+        urls = ["https://static.crates.io/crates/phf_shared/0.11.2/download"],
         strip_prefix = "phf_shared-0.11.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.phf_shared-0.11.2.bazel"),
     )
@@ -2264,7 +2274,7 @@
         name = "cui__pin-project-lite-0.2.13",
         sha256 = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pin-project-lite/0.2.13/download"],
+        urls = ["https://static.crates.io/crates/pin-project-lite/0.2.13/download"],
         strip_prefix = "pin-project-lite-0.2.13",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pin-project-lite-0.2.13.bazel"),
     )
@@ -2274,7 +2284,7 @@
         name = "cui__powerfmt-0.2.0",
         sha256 = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/powerfmt/0.2.0/download"],
+        urls = ["https://static.crates.io/crates/powerfmt/0.2.0/download"],
         strip_prefix = "powerfmt-0.2.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.powerfmt-0.2.0.bazel"),
     )
@@ -2284,7 +2294,7 @@
         name = "cui__ppv-lite86-0.2.17",
         sha256 = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ppv-lite86/0.2.17/download"],
+        urls = ["https://static.crates.io/crates/ppv-lite86/0.2.17/download"],
         strip_prefix = "ppv-lite86-0.2.17",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ppv-lite86-0.2.17.bazel"),
     )
@@ -2294,7 +2304,7 @@
         name = "cui__proc-macro2-1.0.64",
         sha256 = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.64/download"],
+        urls = ["https://static.crates.io/crates/proc-macro2/1.0.64/download"],
         strip_prefix = "proc-macro2-1.0.64",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.proc-macro2-1.0.64.bazel"),
     )
@@ -2304,7 +2314,7 @@
         name = "cui__prodash-26.2.2",
         sha256 = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/prodash/26.2.2/download"],
+        urls = ["https://static.crates.io/crates/prodash/26.2.2/download"],
         strip_prefix = "prodash-26.2.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.prodash-26.2.2.bazel"),
     )
@@ -2314,7 +2324,7 @@
         name = "cui__quote-1.0.29",
         sha256 = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/quote/1.0.29/download"],
+        urls = ["https://static.crates.io/crates/quote/1.0.29/download"],
         strip_prefix = "quote-1.0.29",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.quote-1.0.29.bazel"),
     )
@@ -2324,7 +2334,7 @@
         name = "cui__rand-0.4.6",
         sha256 = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand/0.4.6/download"],
+        urls = ["https://static.crates.io/crates/rand/0.4.6/download"],
         strip_prefix = "rand-0.4.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand-0.4.6.bazel"),
     )
@@ -2334,7 +2344,7 @@
         name = "cui__rand-0.8.5",
         sha256 = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand/0.8.5/download"],
+        urls = ["https://static.crates.io/crates/rand/0.8.5/download"],
         strip_prefix = "rand-0.8.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand-0.8.5.bazel"),
     )
@@ -2344,7 +2354,7 @@
         name = "cui__rand_chacha-0.3.1",
         sha256 = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand_chacha/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/rand_chacha/0.3.1/download"],
         strip_prefix = "rand_chacha-0.3.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand_chacha-0.3.1.bazel"),
     )
@@ -2354,7 +2364,7 @@
         name = "cui__rand_core-0.3.1",
         sha256 = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand_core/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/rand_core/0.3.1/download"],
         strip_prefix = "rand_core-0.3.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand_core-0.3.1.bazel"),
     )
@@ -2364,7 +2374,7 @@
         name = "cui__rand_core-0.4.2",
         sha256 = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand_core/0.4.2/download"],
+        urls = ["https://static.crates.io/crates/rand_core/0.4.2/download"],
         strip_prefix = "rand_core-0.4.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand_core-0.4.2.bazel"),
     )
@@ -2374,7 +2384,7 @@
         name = "cui__rand_core-0.6.4",
         sha256 = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rand_core/0.6.4/download"],
+        urls = ["https://static.crates.io/crates/rand_core/0.6.4/download"],
         strip_prefix = "rand_core-0.6.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rand_core-0.6.4.bazel"),
     )
@@ -2384,7 +2394,7 @@
         name = "cui__rayon-1.8.0",
         sha256 = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rayon/1.8.0/download"],
+        urls = ["https://static.crates.io/crates/rayon/1.8.0/download"],
         strip_prefix = "rayon-1.8.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rayon-1.8.0.bazel"),
     )
@@ -2394,7 +2404,7 @@
         name = "cui__rayon-core-1.12.0",
         sha256 = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rayon-core/1.12.0/download"],
+        urls = ["https://static.crates.io/crates/rayon-core/1.12.0/download"],
         strip_prefix = "rayon-core-1.12.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rayon-core-1.12.0.bazel"),
     )
@@ -2404,7 +2414,7 @@
         name = "cui__rdrand-0.4.0",
         sha256 = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rdrand/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/rdrand/0.4.0/download"],
         strip_prefix = "rdrand-0.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rdrand-0.4.0.bazel"),
     )
@@ -2414,7 +2424,7 @@
         name = "cui__redox_syscall-0.3.5",
         sha256 = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.3.5/download"],
+        urls = ["https://static.crates.io/crates/redox_syscall/0.3.5/download"],
         strip_prefix = "redox_syscall-0.3.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.redox_syscall-0.3.5.bazel"),
     )
@@ -2424,7 +2434,7 @@
         name = "cui__redox_syscall-0.4.1",
         sha256 = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.4.1/download"],
+        urls = ["https://static.crates.io/crates/redox_syscall/0.4.1/download"],
         strip_prefix = "redox_syscall-0.4.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.redox_syscall-0.4.1.bazel"),
     )
@@ -2434,7 +2444,7 @@
         name = "cui__regex-1.10.2",
         sha256 = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex/1.10.2/download"],
+        urls = ["https://static.crates.io/crates/regex/1.10.2/download"],
         strip_prefix = "regex-1.10.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-1.10.2.bazel"),
     )
@@ -2444,7 +2454,7 @@
         name = "cui__regex-automata-0.3.3",
         sha256 = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex-automata/0.3.3/download"],
+        urls = ["https://static.crates.io/crates/regex-automata/0.3.3/download"],
         strip_prefix = "regex-automata-0.3.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-automata-0.3.3.bazel"),
     )
@@ -2454,7 +2464,7 @@
         name = "cui__regex-automata-0.4.3",
         sha256 = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex-automata/0.4.3/download"],
+        urls = ["https://static.crates.io/crates/regex-automata/0.4.3/download"],
         strip_prefix = "regex-automata-0.4.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-automata-0.4.3.bazel"),
     )
@@ -2464,7 +2474,7 @@
         name = "cui__regex-syntax-0.8.2",
         sha256 = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.8.2/download"],
+        urls = ["https://static.crates.io/crates/regex-syntax/0.8.2/download"],
         strip_prefix = "regex-syntax-0.8.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-syntax-0.8.2.bazel"),
     )
@@ -2474,7 +2484,7 @@
         name = "cui__rustc-hash-1.1.0",
         sha256 = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustc-hash/1.1.0/download"],
+        urls = ["https://static.crates.io/crates/rustc-hash/1.1.0/download"],
         strip_prefix = "rustc-hash-1.1.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rustc-hash-1.1.0.bazel"),
     )
@@ -2484,7 +2494,7 @@
         name = "cui__rustc-serialize-0.3.25",
         sha256 = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustc-serialize/0.3.25/download"],
+        urls = ["https://static.crates.io/crates/rustc-serialize/0.3.25/download"],
         strip_prefix = "rustc-serialize-0.3.25",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rustc-serialize-0.3.25.bazel"),
     )
@@ -2494,7 +2504,7 @@
         name = "cui__rustix-0.37.23",
         sha256 = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustix/0.37.23/download"],
+        urls = ["https://static.crates.io/crates/rustix/0.37.23/download"],
         strip_prefix = "rustix-0.37.23",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rustix-0.37.23.bazel"),
     )
@@ -2504,7 +2514,7 @@
         name = "cui__rustix-0.38.21",
         sha256 = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/rustix/0.38.21/download"],
+        urls = ["https://static.crates.io/crates/rustix/0.38.21/download"],
         strip_prefix = "rustix-0.38.21",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.rustix-0.38.21.bazel"),
     )
@@ -2514,7 +2524,7 @@
         name = "cui__ryu-1.0.14",
         sha256 = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ryu/1.0.14/download"],
+        urls = ["https://static.crates.io/crates/ryu/1.0.14/download"],
         strip_prefix = "ryu-1.0.14",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ryu-1.0.14.bazel"),
     )
@@ -2524,7 +2534,7 @@
         name = "cui__same-file-1.0.6",
         sha256 = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/same-file/1.0.6/download"],
+        urls = ["https://static.crates.io/crates/same-file/1.0.6/download"],
         strip_prefix = "same-file-1.0.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.same-file-1.0.6.bazel"),
     )
@@ -2534,7 +2544,7 @@
         name = "cui__scopeguard-1.2.0",
         sha256 = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/scopeguard/1.2.0/download"],
+        urls = ["https://static.crates.io/crates/scopeguard/1.2.0/download"],
         strip_prefix = "scopeguard-1.2.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.scopeguard-1.2.0.bazel"),
     )
@@ -2544,7 +2554,7 @@
         name = "cui__semver-1.0.20",
         sha256 = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/semver/1.0.20/download"],
+        urls = ["https://static.crates.io/crates/semver/1.0.20/download"],
         strip_prefix = "semver-1.0.20",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.semver-1.0.20.bazel"),
     )
@@ -2554,7 +2564,7 @@
         name = "cui__serde-1.0.190",
         sha256 = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde/1.0.190/download"],
+        urls = ["https://static.crates.io/crates/serde/1.0.190/download"],
         strip_prefix = "serde-1.0.190",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde-1.0.190.bazel"),
     )
@@ -2564,7 +2574,7 @@
         name = "cui__serde_derive-1.0.190",
         sha256 = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.190/download"],
+        urls = ["https://static.crates.io/crates/serde_derive/1.0.190/download"],
         strip_prefix = "serde_derive-1.0.190",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_derive-1.0.190.bazel"),
     )
@@ -2574,7 +2584,7 @@
         name = "cui__serde_json-1.0.108",
         sha256 = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.108/download"],
+        urls = ["https://static.crates.io/crates/serde_json/1.0.108/download"],
         strip_prefix = "serde_json-1.0.108",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_json-1.0.108.bazel"),
     )
@@ -2584,7 +2594,7 @@
         name = "cui__serde_spanned-0.6.5",
         sha256 = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_spanned/0.6.5/download"],
+        urls = ["https://static.crates.io/crates/serde_spanned/0.6.5/download"],
         strip_prefix = "serde_spanned-0.6.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_spanned-0.6.5.bazel"),
     )
@@ -2594,7 +2604,7 @@
         name = "cui__serde_starlark-0.1.14",
         sha256 = "29675b116dd4c7ab4012e00e71f6dee9ed8c731108468b4434779c6b9eec7957",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_starlark/0.1.14/download"],
+        urls = ["https://static.crates.io/crates/serde_starlark/0.1.14/download"],
         strip_prefix = "serde_starlark-0.1.14",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_starlark-0.1.14.bazel"),
     )
@@ -2604,7 +2614,7 @@
         name = "cui__sha1_smol-1.0.0",
         sha256 = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/sha1_smol/1.0.0/download"],
+        urls = ["https://static.crates.io/crates/sha1_smol/1.0.0/download"],
         strip_prefix = "sha1_smol-1.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.sha1_smol-1.0.0.bazel"),
     )
@@ -2614,7 +2624,7 @@
         name = "cui__sha2-0.10.8",
         sha256 = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/sha2/0.10.8/download"],
+        urls = ["https://static.crates.io/crates/sha2/0.10.8/download"],
         strip_prefix = "sha2-0.10.8",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.sha2-0.10.8.bazel"),
     )
@@ -2624,7 +2634,7 @@
         name = "cui__sharded-slab-0.1.7",
         sha256 = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/sharded-slab/0.1.7/download"],
+        urls = ["https://static.crates.io/crates/sharded-slab/0.1.7/download"],
         strip_prefix = "sharded-slab-0.1.7",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.sharded-slab-0.1.7.bazel"),
     )
@@ -2634,7 +2644,7 @@
         name = "cui__siphasher-0.3.10",
         sha256 = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/siphasher/0.3.10/download"],
+        urls = ["https://static.crates.io/crates/siphasher/0.3.10/download"],
         strip_prefix = "siphasher-0.3.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.siphasher-0.3.10.bazel"),
     )
@@ -2644,7 +2654,7 @@
         name = "cui__slug-0.1.4",
         sha256 = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/slug/0.1.4/download"],
+        urls = ["https://static.crates.io/crates/slug/0.1.4/download"],
         strip_prefix = "slug-0.1.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.slug-0.1.4.bazel"),
     )
@@ -2654,7 +2664,7 @@
         name = "cui__smallvec-1.11.0",
         sha256 = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smallvec/1.11.0/download"],
+        urls = ["https://static.crates.io/crates/smallvec/1.11.0/download"],
         strip_prefix = "smallvec-1.11.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smallvec-1.11.0.bazel"),
     )
@@ -2664,7 +2674,7 @@
         name = "cui__smawk-0.3.1",
         sha256 = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smawk/0.3.1/download"],
+        urls = ["https://static.crates.io/crates/smawk/0.3.1/download"],
         strip_prefix = "smawk-0.3.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smawk-0.3.1.bazel"),
     )
@@ -2674,7 +2684,7 @@
         name = "cui__smol_str-0.2.0",
         sha256 = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smol_str/0.2.0/download"],
+        urls = ["https://static.crates.io/crates/smol_str/0.2.0/download"],
         strip_prefix = "smol_str-0.2.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smol_str-0.2.0.bazel"),
     )
@@ -2684,7 +2694,7 @@
         name = "cui__spdx-0.10.3",
         sha256 = "62bde1398b09b9f93fc2fc9b9da86e362693e999d3a54a8ac47a99a5a73f638b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/spdx/0.10.3/download"],
+        urls = ["https://static.crates.io/crates/spdx/0.10.3/download"],
         strip_prefix = "spdx-0.10.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.spdx-0.10.3.bazel"),
     )
@@ -2694,7 +2704,7 @@
         name = "cui__spectral-0.6.0",
         sha256 = "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/spectral/0.6.0/download"],
+        urls = ["https://static.crates.io/crates/spectral/0.6.0/download"],
         strip_prefix = "spectral-0.6.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.spectral-0.6.0.bazel"),
     )
@@ -2704,7 +2714,7 @@
         name = "cui__strsim-0.10.0",
         sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        urls = ["https://static.crates.io/crates/strsim/0.10.0/download"],
         strip_prefix = "strsim-0.10.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
     )
@@ -2714,7 +2724,7 @@
         name = "cui__syn-1.0.109",
         sha256 = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/1.0.109/download"],
+        urls = ["https://static.crates.io/crates/syn/1.0.109/download"],
         strip_prefix = "syn-1.0.109",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.syn-1.0.109.bazel"),
     )
@@ -2724,7 +2734,7 @@
         name = "cui__syn-2.0.32",
         sha256 = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/2.0.32/download"],
+        urls = ["https://static.crates.io/crates/syn/2.0.32/download"],
         strip_prefix = "syn-2.0.32",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.syn-2.0.32.bazel"),
     )
@@ -2734,7 +2744,7 @@
         name = "cui__tempfile-3.8.1",
         sha256 = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tempfile/3.8.1/download"],
+        urls = ["https://static.crates.io/crates/tempfile/3.8.1/download"],
         strip_prefix = "tempfile-3.8.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tempfile-3.8.1.bazel"),
     )
@@ -2744,7 +2754,7 @@
         name = "cui__tera-1.19.1",
         sha256 = "970dff17c11e884a4a09bc76e3a17ef71e01bb13447a11e85226e254fe6d10b8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tera/1.19.1/download"],
+        urls = ["https://static.crates.io/crates/tera/1.19.1/download"],
         strip_prefix = "tera-1.19.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tera-1.19.1.bazel"),
     )
@@ -2754,7 +2764,7 @@
         name = "cui__textwrap-0.16.0",
         sha256 = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/textwrap/0.16.0/download"],
+        urls = ["https://static.crates.io/crates/textwrap/0.16.0/download"],
         strip_prefix = "textwrap-0.16.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.textwrap-0.16.0.bazel"),
     )
@@ -2764,7 +2774,7 @@
         name = "cui__thiserror-1.0.50",
         sha256 = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/thiserror/1.0.50/download"],
+        urls = ["https://static.crates.io/crates/thiserror/1.0.50/download"],
         strip_prefix = "thiserror-1.0.50",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.thiserror-1.0.50.bazel"),
     )
@@ -2774,7 +2784,7 @@
         name = "cui__thiserror-impl-1.0.50",
         sha256 = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/thiserror-impl/1.0.50/download"],
+        urls = ["https://static.crates.io/crates/thiserror-impl/1.0.50/download"],
         strip_prefix = "thiserror-impl-1.0.50",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.thiserror-impl-1.0.50.bazel"),
     )
@@ -2784,19 +2794,19 @@
         name = "cui__thread_local-1.1.4",
         sha256 = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/thread_local/1.1.4/download"],
+        urls = ["https://static.crates.io/crates/thread_local/1.1.4/download"],
         strip_prefix = "thread_local-1.1.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.thread_local-1.1.4.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__time-0.3.30",
-        sha256 = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5",
+        name = "cui__time-0.3.36",
+        sha256 = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/time/0.3.30/download"],
-        strip_prefix = "time-0.3.30",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.time-0.3.30.bazel"),
+        urls = ["https://static.crates.io/crates/time/0.3.36/download"],
+        strip_prefix = "time-0.3.36",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.time-0.3.36.bazel"),
     )
 
     maybe(
@@ -2804,19 +2814,19 @@
         name = "cui__time-core-0.1.2",
         sha256 = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/time-core/0.1.2/download"],
+        urls = ["https://static.crates.io/crates/time-core/0.1.2/download"],
         strip_prefix = "time-core-0.1.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.time-core-0.1.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__time-macros-0.2.15",
-        sha256 = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20",
+        name = "cui__time-macros-0.2.18",
+        sha256 = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/time-macros/0.2.15/download"],
-        strip_prefix = "time-macros-0.2.15",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.time-macros-0.2.15.bazel"),
+        urls = ["https://static.crates.io/crates/time-macros/0.2.18/download"],
+        strip_prefix = "time-macros-0.2.18",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.time-macros-0.2.18.bazel"),
     )
 
     maybe(
@@ -2824,7 +2834,7 @@
         name = "cui__tinyvec-1.6.0",
         sha256 = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tinyvec/1.6.0/download"],
+        urls = ["https://static.crates.io/crates/tinyvec/1.6.0/download"],
         strip_prefix = "tinyvec-1.6.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tinyvec-1.6.0.bazel"),
     )
@@ -2834,7 +2844,7 @@
         name = "cui__tinyvec_macros-0.1.1",
         sha256 = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tinyvec_macros/0.1.1/download"],
+        urls = ["https://static.crates.io/crates/tinyvec_macros/0.1.1/download"],
         strip_prefix = "tinyvec_macros-0.1.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tinyvec_macros-0.1.1.bazel"),
     )
@@ -2844,7 +2854,7 @@
         name = "cui__toml-0.7.6",
         sha256 = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml/0.7.6/download"],
+        urls = ["https://static.crates.io/crates/toml/0.7.6/download"],
         strip_prefix = "toml-0.7.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml-0.7.6.bazel"),
     )
@@ -2854,7 +2864,7 @@
         name = "cui__toml-0.8.10",
         sha256 = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml/0.8.10/download"],
+        urls = ["https://static.crates.io/crates/toml/0.8.10/download"],
         strip_prefix = "toml-0.8.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml-0.8.10.bazel"),
     )
@@ -2864,7 +2874,7 @@
         name = "cui__toml_datetime-0.6.5",
         sha256 = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml_datetime/0.6.5/download"],
+        urls = ["https://static.crates.io/crates/toml_datetime/0.6.5/download"],
         strip_prefix = "toml_datetime-0.6.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml_datetime-0.6.5.bazel"),
     )
@@ -2874,7 +2884,7 @@
         name = "cui__toml_edit-0.19.13",
         sha256 = "5f8751d9c1b03c6500c387e96f81f815a4f8e72d142d2d4a9ffa6fedd51ddee7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml_edit/0.19.13/download"],
+        urls = ["https://static.crates.io/crates/toml_edit/0.19.13/download"],
         strip_prefix = "toml_edit-0.19.13",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml_edit-0.19.13.bazel"),
     )
@@ -2884,7 +2894,7 @@
         name = "cui__toml_edit-0.22.4",
         sha256 = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml_edit/0.22.4/download"],
+        urls = ["https://static.crates.io/crates/toml_edit/0.22.4/download"],
         strip_prefix = "toml_edit-0.22.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml_edit-0.22.4.bazel"),
     )
@@ -2894,7 +2904,7 @@
         name = "cui__tracing-0.1.40",
         sha256 = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing/0.1.40/download"],
+        urls = ["https://static.crates.io/crates/tracing/0.1.40/download"],
         strip_prefix = "tracing-0.1.40",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tracing-0.1.40.bazel"),
     )
@@ -2904,7 +2914,7 @@
         name = "cui__tracing-attributes-0.1.27",
         sha256 = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-attributes/0.1.27/download"],
+        urls = ["https://static.crates.io/crates/tracing-attributes/0.1.27/download"],
         strip_prefix = "tracing-attributes-0.1.27",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tracing-attributes-0.1.27.bazel"),
     )
@@ -2914,7 +2924,7 @@
         name = "cui__tracing-core-0.1.32",
         sha256 = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-core/0.1.32/download"],
+        urls = ["https://static.crates.io/crates/tracing-core/0.1.32/download"],
         strip_prefix = "tracing-core-0.1.32",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tracing-core-0.1.32.bazel"),
     )
@@ -2924,7 +2934,7 @@
         name = "cui__tracing-log-0.1.4",
         sha256 = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-log/0.1.4/download"],
+        urls = ["https://static.crates.io/crates/tracing-log/0.1.4/download"],
         strip_prefix = "tracing-log-0.1.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tracing-log-0.1.4.bazel"),
     )
@@ -2934,7 +2944,7 @@
         name = "cui__tracing-subscriber-0.3.17",
         sha256 = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-subscriber/0.3.17/download"],
+        urls = ["https://static.crates.io/crates/tracing-subscriber/0.3.17/download"],
         strip_prefix = "tracing-subscriber-0.3.17",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tracing-subscriber-0.3.17.bazel"),
     )
@@ -2944,7 +2954,7 @@
         name = "cui__typenum-1.16.0",
         sha256 = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/typenum/1.16.0/download"],
+        urls = ["https://static.crates.io/crates/typenum/1.16.0/download"],
         strip_prefix = "typenum-1.16.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.typenum-1.16.0.bazel"),
     )
@@ -2954,7 +2964,7 @@
         name = "cui__ucd-trie-0.1.6",
         sha256 = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ucd-trie/0.1.6/download"],
+        urls = ["https://static.crates.io/crates/ucd-trie/0.1.6/download"],
         strip_prefix = "ucd-trie-0.1.6",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ucd-trie-0.1.6.bazel"),
     )
@@ -2964,7 +2974,7 @@
         name = "cui__uluru-3.0.0",
         sha256 = "794a32261a1f5eb6a4462c81b59cec87b5c27d5deea7dd1ac8fc781c41d226db",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/uluru/3.0.0/download"],
+        urls = ["https://static.crates.io/crates/uluru/3.0.0/download"],
         strip_prefix = "uluru-3.0.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.uluru-3.0.0.bazel"),
     )
@@ -2974,7 +2984,7 @@
         name = "cui__unic-char-property-0.9.0",
         sha256 = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-char-property/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-char-property/0.9.0/download"],
         strip_prefix = "unic-char-property-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-char-property-0.9.0.bazel"),
     )
@@ -2984,7 +2994,7 @@
         name = "cui__unic-char-range-0.9.0",
         sha256 = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-char-range/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-char-range/0.9.0/download"],
         strip_prefix = "unic-char-range-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-char-range-0.9.0.bazel"),
     )
@@ -2994,7 +3004,7 @@
         name = "cui__unic-common-0.9.0",
         sha256 = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-common/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-common/0.9.0/download"],
         strip_prefix = "unic-common-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-common-0.9.0.bazel"),
     )
@@ -3004,7 +3014,7 @@
         name = "cui__unic-segment-0.9.0",
         sha256 = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-segment/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-segment/0.9.0/download"],
         strip_prefix = "unic-segment-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-segment-0.9.0.bazel"),
     )
@@ -3014,7 +3024,7 @@
         name = "cui__unic-ucd-segment-0.9.0",
         sha256 = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-ucd-segment/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-ucd-segment/0.9.0/download"],
         strip_prefix = "unic-ucd-segment-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-ucd-segment-0.9.0.bazel"),
     )
@@ -3024,7 +3034,7 @@
         name = "cui__unic-ucd-version-0.9.0",
         sha256 = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unic-ucd-version/0.9.0/download"],
+        urls = ["https://static.crates.io/crates/unic-ucd-version/0.9.0/download"],
         strip_prefix = "unic-ucd-version-0.9.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unic-ucd-version-0.9.0.bazel"),
     )
@@ -3034,7 +3044,7 @@
         name = "cui__unicode-bidi-0.3.13",
         sha256 = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.13/download"],
+        urls = ["https://static.crates.io/crates/unicode-bidi/0.3.13/download"],
         strip_prefix = "unicode-bidi-0.3.13",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-bidi-0.3.13.bazel"),
     )
@@ -3044,7 +3054,7 @@
         name = "cui__unicode-bom-2.0.2",
         sha256 = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-bom/2.0.2/download"],
+        urls = ["https://static.crates.io/crates/unicode-bom/2.0.2/download"],
         strip_prefix = "unicode-bom-2.0.2",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-bom-2.0.2.bazel"),
     )
@@ -3054,7 +3064,7 @@
         name = "cui__unicode-ident-1.0.10",
         sha256 = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.10/download"],
+        urls = ["https://static.crates.io/crates/unicode-ident/1.0.10/download"],
         strip_prefix = "unicode-ident-1.0.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-ident-1.0.10.bazel"),
     )
@@ -3064,7 +3074,7 @@
         name = "cui__unicode-linebreak-0.1.5",
         sha256 = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-linebreak/0.1.5/download"],
+        urls = ["https://static.crates.io/crates/unicode-linebreak/0.1.5/download"],
         strip_prefix = "unicode-linebreak-0.1.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-linebreak-0.1.5.bazel"),
     )
@@ -3074,7 +3084,7 @@
         name = "cui__unicode-normalization-0.1.22",
         sha256 = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.22/download"],
+        urls = ["https://static.crates.io/crates/unicode-normalization/0.1.22/download"],
         strip_prefix = "unicode-normalization-0.1.22",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-normalization-0.1.22.bazel"),
     )
@@ -3084,19 +3094,19 @@
         name = "cui__unicode-width-0.1.10",
         sha256 = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.10/download"],
+        urls = ["https://static.crates.io/crates/unicode-width/0.1.10/download"],
         strip_prefix = "unicode-width-0.1.10",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-width-0.1.10.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "cui__url-2.4.0",
-        sha256 = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb",
+        name = "cui__url-2.5.2",
+        sha256 = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/url/2.4.0/download"],
-        strip_prefix = "url-2.4.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.url-2.4.0.bazel"),
+        urls = ["https://static.crates.io/crates/url/2.5.2/download"],
+        strip_prefix = "url-2.5.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.url-2.5.2.bazel"),
     )
 
     maybe(
@@ -3104,7 +3114,7 @@
         name = "cui__utf8parse-0.2.1",
         sha256 = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/utf8parse/0.2.1/download"],
+        urls = ["https://static.crates.io/crates/utf8parse/0.2.1/download"],
         strip_prefix = "utf8parse-0.2.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.utf8parse-0.2.1.bazel"),
     )
@@ -3114,7 +3124,7 @@
         name = "cui__valuable-0.1.0",
         sha256 = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/valuable/0.1.0/download"],
+        urls = ["https://static.crates.io/crates/valuable/0.1.0/download"],
         strip_prefix = "valuable-0.1.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.valuable-0.1.0.bazel"),
     )
@@ -3124,7 +3134,7 @@
         name = "cui__version_check-0.9.4",
         sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
+        urls = ["https://static.crates.io/crates/version_check/0.9.4/download"],
         strip_prefix = "version_check-0.9.4",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.version_check-0.9.4.bazel"),
     )
@@ -3134,7 +3144,7 @@
         name = "cui__walkdir-2.3.3",
         sha256 = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/walkdir/2.3.3/download"],
+        urls = ["https://static.crates.io/crates/walkdir/2.3.3/download"],
         strip_prefix = "walkdir-2.3.3",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.walkdir-2.3.3.bazel"),
     )
@@ -3144,7 +3154,7 @@
         name = "cui__wasi-0.11.0-wasi-snapshot-preview1",
         sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        urls = ["https://static.crates.io/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
         strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
     )
@@ -3154,7 +3164,7 @@
         name = "cui__wasm-bindgen-0.2.87",
         sha256 = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasm-bindgen/0.2.87/download"],
+        urls = ["https://static.crates.io/crates/wasm-bindgen/0.2.87/download"],
         strip_prefix = "wasm-bindgen-0.2.87",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasm-bindgen-0.2.87.bazel"),
     )
@@ -3164,7 +3174,7 @@
         name = "cui__wasm-bindgen-backend-0.2.87",
         sha256 = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.87/download"],
+        urls = ["https://static.crates.io/crates/wasm-bindgen-backend/0.2.87/download"],
         strip_prefix = "wasm-bindgen-backend-0.2.87",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasm-bindgen-backend-0.2.87.bazel"),
     )
@@ -3174,7 +3184,7 @@
         name = "cui__wasm-bindgen-macro-0.2.87",
         sha256 = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.87/download"],
+        urls = ["https://static.crates.io/crates/wasm-bindgen-macro/0.2.87/download"],
         strip_prefix = "wasm-bindgen-macro-0.2.87",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasm-bindgen-macro-0.2.87.bazel"),
     )
@@ -3184,7 +3194,7 @@
         name = "cui__wasm-bindgen-macro-support-0.2.87",
         sha256 = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.87/download"],
+        urls = ["https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.87/download"],
         strip_prefix = "wasm-bindgen-macro-support-0.2.87",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasm-bindgen-macro-support-0.2.87.bazel"),
     )
@@ -3194,7 +3204,7 @@
         name = "cui__wasm-bindgen-shared-0.2.87",
         sha256 = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.87/download"],
+        urls = ["https://static.crates.io/crates/wasm-bindgen-shared/0.2.87/download"],
         strip_prefix = "wasm-bindgen-shared-0.2.87",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasm-bindgen-shared-0.2.87.bazel"),
     )
@@ -3204,7 +3214,7 @@
         name = "cui__winapi-0.3.9",
         sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        urls = ["https://static.crates.io/crates/winapi/0.3.9/download"],
         strip_prefix = "winapi-0.3.9",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
     )
@@ -3214,7 +3224,7 @@
         name = "cui__winapi-i686-pc-windows-gnu-0.4.0",
         sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
         strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
     )
@@ -3224,7 +3234,7 @@
         name = "cui__winapi-util-0.1.5",
         sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        urls = ["https://static.crates.io/crates/winapi-util/0.1.5/download"],
         strip_prefix = "winapi-util-0.1.5",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
     )
@@ -3234,7 +3244,7 @@
         name = "cui__winapi-x86_64-pc-windows-gnu-0.4.0",
         sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        urls = ["https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
         strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
     )
@@ -3244,7 +3254,7 @@
         name = "cui__windows-0.48.0",
         sha256 = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows/0.48.0/download"],
         strip_prefix = "windows-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows-0.48.0.bazel"),
     )
@@ -3254,7 +3264,7 @@
         name = "cui__windows-sys-0.48.0",
         sha256 = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows-sys/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows-sys/0.48.0/download"],
         strip_prefix = "windows-sys-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows-sys-0.48.0.bazel"),
     )
@@ -3264,7 +3274,7 @@
         name = "cui__windows-targets-0.48.1",
         sha256 = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows-targets/0.48.1/download"],
+        urls = ["https://static.crates.io/crates/windows-targets/0.48.1/download"],
         strip_prefix = "windows-targets-0.48.1",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows-targets-0.48.1.bazel"),
     )
@@ -3274,7 +3284,7 @@
         name = "cui__windows_aarch64_gnullvm-0.48.0",
         sha256 = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.0/download"],
         strip_prefix = "windows_aarch64_gnullvm-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_aarch64_gnullvm-0.48.0.bazel"),
     )
@@ -3284,7 +3294,7 @@
         name = "cui__windows_aarch64_msvc-0.48.0",
         sha256 = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_aarch64_msvc/0.48.0/download"],
         strip_prefix = "windows_aarch64_msvc-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_aarch64_msvc-0.48.0.bazel"),
     )
@@ -3294,7 +3304,7 @@
         name = "cui__windows_i686_gnu-0.48.0",
         sha256 = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_gnu/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_i686_gnu/0.48.0/download"],
         strip_prefix = "windows_i686_gnu-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_i686_gnu-0.48.0.bazel"),
     )
@@ -3304,7 +3314,7 @@
         name = "cui__windows_i686_msvc-0.48.0",
         sha256 = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_i686_msvc/0.48.0/download"],
         strip_prefix = "windows_i686_msvc-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_i686_msvc-0.48.0.bazel"),
     )
@@ -3314,7 +3324,7 @@
         name = "cui__windows_x86_64_gnu-0.48.0",
         sha256 = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_gnu/0.48.0/download"],
         strip_prefix = "windows_x86_64_gnu-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_x86_64_gnu-0.48.0.bazel"),
     )
@@ -3324,7 +3334,7 @@
         name = "cui__windows_x86_64_gnullvm-0.48.0",
         sha256 = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.0/download"],
         strip_prefix = "windows_x86_64_gnullvm-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_x86_64_gnullvm-0.48.0.bazel"),
     )
@@ -3334,7 +3344,7 @@
         name = "cui__windows_x86_64_msvc-0.48.0",
         sha256 = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.0/download"],
+        urls = ["https://static.crates.io/crates/windows_x86_64_msvc/0.48.0/download"],
         strip_prefix = "windows_x86_64_msvc-0.48.0",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.windows_x86_64_msvc-0.48.0.bazel"),
     )
@@ -3344,7 +3354,7 @@
         name = "cui__winnow-0.5.18",
         sha256 = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/winnow/0.5.18/download"],
+        urls = ["https://static.crates.io/crates/winnow/0.5.18/download"],
         strip_prefix = "winnow-0.5.18",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.winnow-0.5.18.bazel"),
     )
@@ -3355,7 +3365,7 @@
         struct(repo = "cui__cargo-lock-9.0.0", is_dev_dep = False),
         struct(repo = "cui__cargo-platform-0.1.4", is_dev_dep = False),
         struct(repo = "cui__cargo_metadata-0.18.1", is_dev_dep = False),
-        struct(repo = "cui__cargo_toml-0.17.1", is_dev_dep = False),
+        struct(repo = "cui__cargo_toml-0.19.2", is_dev_dep = False),
         struct(repo = "cui__cfg-expr-0.15.5", is_dev_dep = False),
         struct(repo = "cui__clap-4.3.11", is_dev_dep = False),
         struct(repo = "cui__crates-index-2.2.0", is_dev_dep = False),
@@ -3363,6 +3373,7 @@
         struct(repo = "cui__indoc-2.0.4", is_dev_dep = False),
         struct(repo = "cui__itertools-0.12.0", is_dev_dep = False),
         struct(repo = "cui__normpath-1.1.1", is_dev_dep = False),
+        struct(repo = "cui__once_cell-1.19.0", is_dev_dep = False),
         struct(repo = "cui__pathdiff-0.2.1", is_dev_dep = False),
         struct(repo = "cui__regex-1.10.2", is_dev_dep = False),
         struct(repo = "cui__semver-1.0.20", is_dev_dep = False),
@@ -3377,6 +3388,7 @@
         struct(repo = "cui__toml-0.8.10", is_dev_dep = False),
         struct(repo = "cui__tracing-0.1.40", is_dev_dep = False),
         struct(repo = "cui__tracing-subscriber-0.3.17", is_dev_dep = False),
+        struct(repo = "cui__url-2.5.2", is_dev_dep = False),
         struct(repo = "cui__maplit-1.0.2", is_dev_dep = True),
         struct(repo = "cui__spectral-0.6.0", is_dev_dep = True),
     ]
diff --git a/crate_universe/BUILD.bazel b/crate_universe/BUILD.bazel
index 370dc5c..f32cbcc 100644
--- a/crate_universe/BUILD.bazel
+++ b/crate_universe/BUILD.bazel
@@ -12,7 +12,8 @@
         "Cargo.toml",
         "Cargo.lock",
         "defs.bzl",
-        "docs.bzl",
+        "docs_bzlmod.bzl",
+        "docs_workspace.bzl",
     ],
     visibility = ["//visibility:public"],
 )
@@ -128,6 +129,7 @@
         "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_cargo_files)",
         "RUSTC": "$(rootpath @rules_rust//rust/toolchain:current_rustc_files)",
     },
+    tags = ["requires-network"],
     deps = [
         ":cargo_bazel",
         "@rules_rust//tools/runfiles",
diff --git a/crate_universe/Cargo.lock b/crate_universe/Cargo.lock
index 41e2b5f..f6fca5f 100644
--- a/crate_universe/Cargo.lock
+++ b/crate_universe/Cargo.lock
@@ -169,7 +169,7 @@
 
 [[package]]
 name = "cargo-bazel"
-version = "0.11.0"
+version = "0.14.0"
 dependencies = [
  "anyhow",
  "camino",
@@ -185,6 +185,7 @@
  "itertools",
  "maplit",
  "normpath",
+ "once_cell",
  "pathdiff",
  "regex",
  "semver",
@@ -200,6 +201,7 @@
  "toml 0.8.10",
  "tracing",
  "tracing-subscriber",
+ "url",
 ]
 
 [[package]]
@@ -239,9 +241,9 @@
 
 [[package]]
 name = "cargo_toml"
-version = "0.17.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d1ece59890e746567b467253aea0adbe8a21784d0b025d8a306f66c391c2957"
+checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be"
 dependencies = [
  "serde",
  "toml 0.8.10",
@@ -601,9 +603,9 @@
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -1443,9 +1445,9 @@
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1694,6 +1696,12 @@
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
 version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1746,9 +1754,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "overload"
@@ -1796,9 +1804,9 @@
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
@@ -2367,13 +2375,14 @@
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -2389,10 +2398,11 @@
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -2639,9 +2649,9 @@
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
 dependencies = [
  "form_urlencoded",
  "idna",
diff --git a/crate_universe/Cargo.toml b/crate_universe/Cargo.toml
index 2c71ef7..a038b79 100644
--- a/crate_universe/Cargo.toml
+++ b/crate_universe/Cargo.toml
@@ -1,16 +1,11 @@
 [workspace]
-members = [
-    "tools/cross_installer",
-    "tools/urls_generator",
-]
+members = ["tools/cross_installer", "tools/urls_generator"]
 exclude = ["test_data"]
 
 [package]
 name = "cargo-bazel"
-version = "0.11.0"
-authors = [
-    "Andre Brisco - andre.brisco@protonmail.com",
-]
+version = "0.14.0"
+authors = ["Andre Brisco - andre.brisco@protonmail.com"]
 categories = ["development-tools"]
 description = "A collection of tools which use Cargo to generate build targets for Bazel"
 edition = "2021"
@@ -28,16 +23,19 @@
 anyhow = "1.0.75"
 camino = "1.1.6"
 cargo_metadata = "0.18.1"
-cargo_toml = "0.17.1"
+cargo_toml = "0.19.2"
 cargo-lock = "9.0.0"
 cargo-platform = "0.1.4"
 cfg-expr = "0.15.5"
 clap = { version = "4.3.11", features = ["derive", "env"] }
-crates-index = { version = "2.2.0", default-features = false, features = ["git"] }
+crates-index = { version = "2.2.0", default-features = false, features = [
+    "git",
+] }
 hex = "0.4.3"
 indoc = "2.0.4"
 itertools = "0.12.0"
 normpath = "1.1.1"
+once_cell = "1.19.0"
 pathdiff = "0.2.1"
 regex = "1.10.2"
 semver = "1.0.20"
@@ -52,6 +50,7 @@
 toml = "0.8.10"
 tracing = "0.1.40"
 tracing-subscriber = "0.3.17"
+url = "2.5.2"
 
 [dev-dependencies]
 maplit = "1.0.2"
diff --git a/crate_universe/docs.bzl b/crate_universe/docs.bzl
deleted file mode 100644
index 802a134..0000000
--- a/crate_universe/docs.bzl
+++ /dev/null
@@ -1,295 +0,0 @@
-"""# Crate Universe
-
-Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
-
-## Setup
-
-After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
-
-```python
-load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-
-crate_universe_dependencies()
-```
-
-Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
-flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
-call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
-
-## Rules
-
-- [crates_repository](#crates_repository)
-- [crates_vendor](#crates_vendor)
-
-## Utility Macros
-
-- [crate_universe_dependencies](#crate_universe_dependencies)
-- [crate.annotation](#crateannotation)
-- [crate.select](#crateselect)
-- [crate.spec](#cratespec)
-- [crate.workspace_member](#crateworkspace_member)
-- [render_config](#render_config)
-- [splicing_config](#splicing_config)
-
-## Workflows
-
-The [`crates_repository`](#crates_repository) rule (the primary repository rule of `rules_rust`'s cargo support) supports a number of different
-ways users can express and organize their dependencies. The most common are listed below though there are more to be found in
-the [./examples/crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/examples/crate_universe) directory.
-
-### Cargo Workspaces
-
-One of the simpler ways to wire up dependencies would be to first structure your project into a [Cargo workspace][cw].
-The `crates_repository` rule can ingest a root `Cargo.toml` file and generate dependencies from there.
-
-```python
-load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
-
-crates_repository(
-    name = "crate_index",
-    cargo_lockfile = "//:Cargo.lock",
-    lockfile = "//:Cargo.Bazel.lock",
-    manifests = ["//:Cargo.toml"],
-)
-
-load("@crate_index//:defs.bzl", "crate_repositories")
-
-crate_repositories()
-```
-
-The generated `crates_repository` contains helper macros which make collecting dependencies for Bazel targets simpler.
-Notably, the `all_crate_deps` and `aliases` macros (see [Dependencies API](#dependencies-api)) commonly allow the
-`Cargo.toml` files to be the single source of truth for dependencies. Since these macros come from the generated
-repository, the dependencies and alias definitions they return will automatically update BUILD targets.
-
-```python
-load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
-load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
-
-rust_library(
-    name = "lib",
-    aliases = aliases(),
-    deps = all_crate_deps(
-        normal = True,
-    ),
-    proc_macro_deps = all_crate_deps(
-        proc_macro = True,
-    ),
-)
-
-rust_test(
-    name = "unit_test",
-    crate = ":lib",
-    aliases = aliases(
-        normal_dev = True,
-        proc_macro_dev = True,
-    ),
-    deps = all_crate_deps(
-        normal_dev = True,
-    ),
-    proc_macro_deps = all_crate_deps(
-        proc_macro_dev = True,
-    ),
-)
-```
-
-### Direct Packages
-
-In cases where Rust targets have heavy interractions with other Bazel targests ([Cc][cc], [Proto][proto], etc.),
-maintaining `Cargo.toml` files may have deminishing returns as things like [rust-analyzer][ra] begin to be confused
-about missing targets or environment variables defined only in Bazel. In workspaces like this, it may be desirable
-to have a "Cargo free" setup. `crates_repository` supports this through the `packages` attribute.
-
-```python
-load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository", "render_config")
-
-crates_repository(
-    name = "crate_index",
-    cargo_lockfile = "//:Cargo.lock",
-    lockfile = "//:Cargo.Bazel.lock",
-    packages = {
-        "async-trait": crate.spec(
-            version = "0.1.51",
-        ),
-        "mockall": crate.spec(
-            version = "0.10.2",
-        ),
-        "tokio": crate.spec(
-            version = "1.12.0",
-        ),
-    },
-    # Setting the default package name to `""` forces the use of the macros defined in this repository
-    # to always use the root package when looking for dependencies or aliases. This should be considered
-    # optional as the repository also exposes alises for easy access to all dependencies.
-    render_config = render_config(
-        default_package_name = ""
-    ),
-)
-
-load("@crate_index//:defs.bzl", "crate_repositories")
-
-crate_repositories()
-```
-
-Consuming dependencies may be more ergonomic in this case through the aliases defined in the new repository.
-
-```python
-load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
-
-rust_library(
-    name = "lib",
-    deps = [
-        "@crate_index//:tokio",
-    ],
-    proc_macro_deps = [
-        "@crate_index//:async-trait",
-    ],
-)
-
-rust_test(
-    name = "unit_test",
-    crate = ":lib",
-    deps = [
-        "@crate_index//:mockall",
-    ],
-)
-```
-
-### Binary dependencies
-
-Neither of the above approaches supports depending on binary-only packages.
-
-In order to depend on a Cargo package that contains binaries and no library, you
-will need to do one of the following:
-
-- Fork the package to add an empty lib.rs, which makes the package visible to
-  Cargo metadata and compatible with the above approaches;
-
-- Or handwrite your own build target for the binary, use `http_archive` to
-  import its source code, and use `crates_repository` to make build targets for
-  its dependencies. This is demonstrated below using the `rustfilt` crate as an
-  example.
-
-```python
-# in WORKSPACE.bazel
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
-    name = "rustfilt",
-    build_file = "//rustfilt:BUILD.rustfilt.bazel",
-    sha256 = "c8d748b182c8f95224336d20dcc5609598af612581ce60cfb29da4dc8d0091f2",
-    strip_prefix = "rustfilt-0.2.1",
-    type = "tar.gz",
-    urls = ["https://crates.io/api/v1/crates/rustfilt/0.2.1/download"],
-)
-
-load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
-
-crates_repository(
-    name = "rustfilt_deps",
-    cargo_lockfile = "//rustfilt:Cargo.lock",
-    manifests = ["@rustfilt//:Cargo.toml"],
-)
-
-load("@rustfilt_deps//:defs.bzl", rustfilt_deps = "crate_repositories")
-
-rustfilt_deps()
-```
-
-```python
-# in rustfilt/BUILD.rustfilt.bazel
-
-load("@rules_rust//rust:defs.bzl", "rust_binary")
-
-rust_binary(
-    name = "rustfilt",
-    srcs = glob(["src/**/*.rs"]),
-    edition = "2018",
-    deps = [
-        "@rustfilt_deps//:clap",
-        "@rustfilt_deps//:lazy_static",
-        "@rustfilt_deps//:regex",
-        "@rustfilt_deps//:rustc-demangle",
-    ],
-)
-```
-
-If you use either `crates_repository` or `crates_vendor` to depend on a Cargo
-package that contains _both_ a library crate _and_ binaries, by default only the
-library gets made available to Bazel. To generate Bazel targets for the binary
-crates as well, you must opt in to it with an annotation on the package:
-
-```python
-load("@rules_rust//crate_universe:defs.bzl", "crates_repository", "crate")
-
-crates_repository(
-    name = "crate_index",
-    annotations = {
-        "thepackage": [crate.annotation(
-            gen_binaries = True,
-            # Or, to expose just a subset of the package's binaries by name:
-            gen_binaries = ["rustfilt"],
-        )],
-    },
-    # Or, to expose every binary of every package:
-    generate_binaries = True,
-    ...
-)
-```
-
-## Dependencies API
-
-After rendering dependencies, convenience macros may also be generated to provide
-convenient accessors to larger sections of the dependency graph.
-
-- [aliases](#aliases)
-- [crate_deps](#crate_deps)
-- [all_crate_deps](#all_crate_deps)
-- [crate_repositories](#crate_repositories)
-
----
-
----
-
-[cw]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
-[cc]: https://docs.bazel.build/versions/main/be/c-cpp.html
-[proto]: https://rules-proto-grpc.com/en/latest/lang/rust.html
-[ra]: https://rust-analyzer.github.io/
-"""
-
-load(
-    "//crate_universe:defs.bzl",
-    _crate = "crate",
-    _crates_repository = "crates_repository",
-    _crates_vendor = "crates_vendor",
-    _render_config = "render_config",
-    _splicing_config = "splicing_config",
-)
-load(
-    "//crate_universe:repositories.bzl",
-    _crate_universe_dependencies = "crate_universe_dependencies",
-)
-load(
-    "//crate_universe/3rdparty/crates:defs.bzl",
-    _aliases = "aliases",
-    _all_crate_deps = "all_crate_deps",
-    _crate_deps = "crate_deps",
-    _crate_repositories = "crate_repositories",
-)
-
-# Rules
-crates_repository = _crates_repository
-crates_vendor = _crates_vendor
-
-# Utility Macros
-crate_universe_dependencies = _crate_universe_dependencies
-crate = _crate
-render_config = _render_config
-splicing_config = _splicing_config
-
-# Dependencies API
-aliases = _aliases
-all_crate_deps = _all_crate_deps
-crate_deps = _crate_deps
-crate_repositories = _crate_repositories
diff --git a/crate_universe/docs_bzlmod.bzl b/crate_universe/docs_bzlmod.bzl
new file mode 100644
index 0000000..9b6cf1a
--- /dev/null
+++ b/crate_universe/docs_bzlmod.bzl
@@ -0,0 +1,21 @@
+"""# Crate Universe
+
+Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
+
+This doc describes using crate_universe with bzlmod.
+
+If you're using a WORKSPACE file, please see [the WORKSPACE equivalent of this doc](crate_universe.html).
+
+There are some examples of using crate_universe with bzlmod:
+
+* https://github.com/bazelbuild/rules_rust/blob/main/examples/bzlmod/hello_world/MODULE.bazel
+* https://github.com/bazelbuild/rules_rust/blob/main/examples/bzlmod/override_target/MODULE.bazel
+* https://github.com/bazelbuild/rules_rust/blob/main/examples/bzlmod/all_crate_deps/MODULE.bazel
+"""
+
+load(
+    "//crate_universe:extension.bzl",
+    _crate = "crate",
+)
+
+crate = _crate
diff --git a/crate_universe/docs_workspace.bzl b/crate_universe/docs_workspace.bzl
new file mode 100644
index 0000000..415af1e
--- /dev/null
+++ b/crate_universe/docs_workspace.bzl
@@ -0,0 +1,330 @@
+"""# Crate Universe
+
+Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
+
+This doc describes using crate_universe from a WORKSPACE file.
+
+If you're using bzlmod, please see [the bzlmod equivalent of this doc](crate_universe_bzlmod.html).
+
+## Setup
+
+After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
+
+```python
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
+
+crate_universe_dependencies()
+```
+
+Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
+flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
+call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
+
+## Rules
+
+- [crates_repository](#crates_repository)
+- [crates_vendor](#crates_vendor)
+
+## Utility Macros
+
+- [crate_universe_dependencies](#crate_universe_dependencies)
+- [crate.annotation](#crateannotation)
+- [crate.select](#crateselect)
+- [crate.spec](#cratespec)
+- [crate.workspace_member](#crateworkspace_member)
+- [render_config](#render_config)
+- [splicing_config](#splicing_config)
+
+## Workflows
+
+The [`crates_repository`](#crates_repository) rule (the primary repository rule of `rules_rust`'s cargo support) supports a number of different
+ways users can express and organize their dependencies. The most common are listed below though there are more to be found in
+the [./examples/crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/examples/crate_universe) directory.
+
+### Cargo Workspaces
+
+One of the simpler ways to wire up dependencies would be to first structure your project into a [Cargo workspace][cw].
+The `crates_repository` rule can ingest a root `Cargo.toml` file and generate dependencies from there.
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
+
+crates_repository(
+    name = "crate_index",
+    cargo_lockfile = "//:Cargo.lock",
+    lockfile = "//:Cargo.Bazel.lock",
+    manifests = ["//:Cargo.toml"],
+)
+
+load("@crate_index//:defs.bzl", "crate_repositories")
+
+crate_repositories()
+```
+
+The generated `crates_repository` contains helper macros which make collecting dependencies for Bazel targets simpler.
+Notably, the `all_crate_deps` and `aliases` macros (see [Dependencies API](#dependencies-api)) commonly allow the
+`Cargo.toml` files to be the single source of truth for dependencies. Since these macros come from the generated
+repository, the dependencies and alias definitions they return will automatically update BUILD targets.
+
+```python
+load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
+load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
+
+rust_library(
+    name = "lib",
+    aliases = aliases(),
+    deps = all_crate_deps(
+        normal = True,
+    ),
+    proc_macro_deps = all_crate_deps(
+        proc_macro = True,
+    ),
+)
+
+rust_test(
+    name = "unit_test",
+    crate = ":lib",
+    aliases = aliases(
+        normal_dev = True,
+        proc_macro_dev = True,
+    ),
+    deps = all_crate_deps(
+        normal_dev = True,
+    ),
+    proc_macro_deps = all_crate_deps(
+        proc_macro_dev = True,
+    ),
+)
+```
+
+### Direct Packages
+
+In cases where Rust targets have heavy interractions with other Bazel targests ([Cc][cc], [Proto][proto], etc.),
+maintaining `Cargo.toml` files may have deminishing returns as things like [rust-analyzer][ra] begin to be confused
+about missing targets or environment variables defined only in Bazel. In workspaces like this, it may be desirable
+to have a "Cargo free" setup. `crates_repository` supports this through the `packages` attribute.
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository", "render_config")
+
+crates_repository(
+    name = "crate_index",
+    cargo_lockfile = "//:Cargo.lock",
+    lockfile = "//:Cargo.Bazel.lock",
+    packages = {
+        "async-trait": crate.spec(
+            version = "0.1.51",
+        ),
+        "mockall": crate.spec(
+            version = "0.10.2",
+        ),
+        "tokio": crate.spec(
+            version = "1.12.0",
+        ),
+    },
+    # Setting the default package name to `""` forces the use of the macros defined in this repository
+    # to always use the root package when looking for dependencies or aliases. This should be considered
+    # optional as the repository also exposes alises for easy access to all dependencies.
+    render_config = render_config(
+        default_package_name = ""
+    ),
+)
+
+load("@crate_index//:defs.bzl", "crate_repositories")
+
+crate_repositories()
+```
+
+Consuming dependencies may be more ergonomic in this case through the aliases defined in the new repository.
+
+```python
+load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
+
+rust_library(
+    name = "lib",
+    deps = [
+        "@crate_index//:tokio",
+    ],
+    proc_macro_deps = [
+        "@crate_index//:async-trait",
+    ],
+)
+
+rust_test(
+    name = "unit_test",
+    crate = ":lib",
+    deps = [
+        "@crate_index//:mockall",
+    ],
+)
+```
+
+### Binary dependencies
+
+Neither of the above approaches supports depending on binary-only packages.
+
+In order to depend on a Cargo package that contains binaries and no library, you
+will need to do one of the following:
+
+- Fork the package to add an empty lib.rs, which makes the package visible to
+  Cargo metadata and compatible with the above approaches;
+
+- Or handwrite your own build target for the binary, use `http_archive` to
+  import its source code, and use `crates_repository` to make build targets for
+  its dependencies. This is demonstrated below using the `rustfilt` crate as an
+  example.
+
+```python
+# in WORKSPACE.bazel
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+    name = "rustfilt",
+    build_file = "//rustfilt:BUILD.rustfilt.bazel",
+    sha256 = "c8d748b182c8f95224336d20dcc5609598af612581ce60cfb29da4dc8d0091f2",
+    strip_prefix = "rustfilt-0.2.1",
+    type = "tar.gz",
+    urls = ["https://static.crates.io/crates/rustfilt/rustfilt-0.2.1.crate"],
+)
+
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
+
+crates_repository(
+    name = "rustfilt_deps",
+    cargo_lockfile = "//rustfilt:Cargo.lock",
+    manifests = ["@rustfilt//:Cargo.toml"],
+)
+
+load("@rustfilt_deps//:defs.bzl", rustfilt_deps = "crate_repositories")
+
+rustfilt_deps()
+```
+
+```python
+# in rustfilt/BUILD.rustfilt.bazel
+
+load("@rules_rust//rust:defs.bzl", "rust_binary")
+
+rust_binary(
+    name = "rustfilt",
+    srcs = glob(["src/**/*.rs"]),
+    edition = "2018",
+    deps = [
+        "@rustfilt_deps//:clap",
+        "@rustfilt_deps//:lazy_static",
+        "@rustfilt_deps//:regex",
+        "@rustfilt_deps//:rustc-demangle",
+    ],
+)
+```
+
+If you use either `crates_repository` or `crates_vendor` to depend on a Cargo
+package that contains _both_ a library crate _and_ binaries, by default only the
+library gets made available to Bazel. To generate Bazel targets for the binary
+crates as well, you must opt in to it with an annotation on the package:
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository", "crate")
+
+crates_repository(
+    name = "crate_index",
+    annotations = {
+        "thepackage": [crate.annotation(
+            gen_binaries = True,
+            # Or, to expose just a subset of the package's binaries by name:
+            gen_binaries = ["rustfilt"],
+        )],
+    },
+    # Or, to expose every binary of every package:
+    generate_binaries = True,
+    ...
+)
+```
+
+## Dependencies API
+
+After rendering dependencies, convenience macros may also be generated to provide
+convenient accessors to larger sections of the dependency graph.
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+## Building crates with complicated dependencies
+
+Some crates have build.rs scripts which are complicated to run. Typically these build C++ (or other languages), or attempt to find pre-installed libraries on the build machine.
+
+There are a few approaches to making sure these run:
+
+### Some things work without intervention
+
+Some build scripts will happily run without any support needed.
+
+rules_rust already supplies a configured C++ toolchain as input to build script execution, and sets variables like `CC`, `CXX`, `LD`, `LDFLAGS`, etc as needed. Many crates which invoke a compiler with the default environment, or forward these env vars, will Just Work (e.g. if using [`cc-rs`][cc-rs]).
+
+rules_rust is open to PRs which make build scripts more likely to work by default with intervention assuming they're broadly applicable (e.g. setting extra widely-known env vars is probably fine, wiring up additional toolchains like `cmake` that aren't present by default for most Bazel users probably isn't).
+
+### Supplying extra tools to build
+
+Some build scripts can be made to work by pulling in some extra files and making them available to the build script.
+
+Commonly this is done by passing the file to the `build_script_data` annotation for the crate, and using `build_script_env` to tell the build script where the file is. That env var may often use `$(execroot)` to get the path to the label, or `$${pwd}/` as a prefix if the path given is relative to the execroot (as will frequently happen when using a toolchain).A
+
+There is an example of this in the "complicated dependencies" section of https://github.com/bazelbuild/rules_rust/blob/main/examples/crate_universe/WORKSPACE.bazel which builds libz-ng-sys.
+
+### Building with Bazel and supplying via an override
+
+Some build scripts have hooks to allow replacing parts that are complicated to build with output prepared by Bazel.
+
+We can use those hooks by specifying paths (generally using the `build_script_data` and `build_script_env` annotations) and pointing them at labels which Bazel will then build. These env vars may often use `$(execroot)` to get the path to the label, or `$${pwd}/` as a prefix if the path given is relative to the execroot (as will frequently happen when using a toolchain).
+
+There is an example of this in the "complicated dependencies" section of https://github.com/bazelbuild/rules_rust/blob/main/examples/crate_universe/WORKSPACE.bazel which builds boring-sys.
+
+---
+
+---
+
+[cw]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
+[cc]: https://docs.bazel.build/versions/main/be/c-cpp.html
+[proto]: https://rules-proto-grpc.com/en/latest/lang/rust.html
+[ra]: https://rust-analyzer.github.io/
+[cc-rs]: https://github.com/rust-lang/cc-rs
+"""
+
+load(
+    "//crate_universe:defs.bzl",
+    _crate = "crate",
+    _crates_repository = "crates_repository",
+    _crates_vendor = "crates_vendor",
+    _render_config = "render_config",
+    _splicing_config = "splicing_config",
+)
+load(
+    "//crate_universe:repositories.bzl",
+    _crate_universe_dependencies = "crate_universe_dependencies",
+)
+load(
+    "//crate_universe/3rdparty/crates:defs.bzl",
+    _aliases = "aliases",
+    _all_crate_deps = "all_crate_deps",
+    _crate_deps = "crate_deps",
+    _crate_repositories = "crate_repositories",
+)
+
+# Rules
+crates_repository = _crates_repository
+crates_vendor = _crates_vendor
+
+# Utility Macros
+crate_universe_dependencies = _crate_universe_dependencies
+crate = _crate
+render_config = _render_config
+splicing_config = _splicing_config
+
+# Dependencies API
+aliases = _aliases
+all_crate_deps = _all_crate_deps
+crate_deps = _crate_deps
+crate_repositories = _crate_repositories
diff --git a/crate_universe/extension.bzl b/crate_universe/extension.bzl
index 8e6b816..243b3b0 100644
--- a/crate_universe/extension.bzl
+++ b/crate_universe/extension.bzl
@@ -1,12 +1,15 @@
 """Module extension for generating third-party crates for use in bazel."""
 
+load("@bazel_features//:features.bzl", "bazel_features")
 load("@bazel_skylib//lib:structs.bzl", "structs")
 load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 load("//crate_universe:defs.bzl", _crate_universe_crate = "crate")
 load("//crate_universe/private:crates_vendor.bzl", "CRATES_VENDOR_ATTRS", "generate_config_file", "generate_splicing_manifest")
-load("//crate_universe/private:generate_utils.bzl", "render_config")
-load("//crate_universe/private/module_extensions:cargo_bazel_bootstrap.bzl", "get_cargo_bazel_runner")
+load("//crate_universe/private:generate_utils.bzl", "CARGO_BAZEL_GENERATOR_SHA256", "CARGO_BAZEL_GENERATOR_URL", "GENERATOR_ENV_VARS", "render_config")
+load("//crate_universe/private:urls.bzl", "CARGO_BAZEL_SHA256S", "CARGO_BAZEL_URLS")
+load("//crate_universe/private/module_extensions:cargo_bazel_bootstrap.bzl", "get_cargo_bazel_runner", "get_host_cargo_rustc")
+load("//rust/platform:triple.bzl", "get_host_triple")
 
 # A list of labels which may be relative (and if so, is within the repo the rule is generated in).
 #
@@ -22,7 +25,11 @@
 }
 
 def optional_bool(doc):
-    return attr.string(doc = doc, values = _OPT_BOOL_VALUES.keys(), default = "auto")
+    return attr.string(
+        doc = doc,
+        values = _OPT_BOOL_VALUES.keys(),
+        default = "auto",
+    )
 
 def _get_or_insert(d, key, value):
     if key not in d:
@@ -40,8 +47,35 @@
     ),
 )
 
-def _generate_hub_and_spokes(module_ctx, cargo_bazel, cfg, annotations):
-    cargo_lockfile = module_ctx.path(cfg.cargo_lockfile)
+def _annotations_for_repo(module_annotations, repo_specific_annotations):
+    """Merges the set of global annotations with the repo-specific ones
+
+    Args:
+        module_annotations (dict): The annotation tags that apply to all repos, keyed by crate.
+        repo_specific_annotations (dict): The annotation tags that apply to only this repo, keyed by crate.
+    """
+
+    if not repo_specific_annotations:
+        return module_annotations
+
+    annotations = dict(module_annotations)
+    for crate, values in repo_specific_annotations.items():
+        _get_or_insert(annotations, crate, []).extend(values)
+    return annotations
+
+def _generate_hub_and_spokes(module_ctx, cargo_bazel, cfg, annotations, cargo_lockfile = None, manifests = {}, packages = {}):
+    """Generates repositories for the transitive closure of crates defined by manifests and packages.
+
+    Args:
+        module_ctx (module_ctx): The module context object.
+        cargo_bazel (function): A function that can be called to execute cargo_bazel.
+        cfg (object): The module tag from `from_cargo` or `from_specs`
+        annotations (dict): The set of annotation tag classes that apply to this closure, keyed by crate name.
+        cargo_lockfile (path): Path to Cargo.lock, if we have one. This is optional for `from_specs` closures.
+        manifests (dict): The set of Cargo.toml manifests that apply to this closure, if any, keyed by path.
+        packages (dict): The set of extra cargo crate tags that apply to this closure, if any, keyed by package name.
+    """
+
     tag_path = module_ctx.path(cfg.name)
 
     rendering_config = json.decode(render_config(
@@ -67,22 +101,21 @@
         ),
     )
 
-    manifests = {module_ctx.path(m): m for m in cfg.manifests}
     splicing_manifest = tag_path.get_child("splicing_manifest.json")
     module_ctx.file(
         splicing_manifest,
         executable = False,
         content = generate_splicing_manifest(
-            packages = {},
+            packages = packages,
             splicing_config = "",
             cargo_config = cfg.cargo_config,
-            manifests = {str(k): str(v) for k, v in manifests.items()},
+            manifests = manifests,
             manifest_to_path = module_ctx.path,
         ),
     )
 
     splicing_output_dir = tag_path.get_child("splicing-output")
-    cargo_bazel([
+    splice_args = [
         "splice",
         "--output-dir",
         splicing_output_dir,
@@ -90,9 +123,13 @@
         config_file,
         "--splicing-manifest",
         splicing_manifest,
-        "--cargo-lockfile",
-        cargo_lockfile,
-    ])
+    ]
+    if cargo_lockfile:
+        splice_args.extend([
+            "--cargo-lockfile",
+            cargo_lockfile,
+        ])
+    cargo_bazel(splice_args)
 
     # Create a lockfile, since we need to parse it to generate spoke
     # repos.
@@ -102,7 +139,7 @@
     cargo_bazel([
         "generate",
         "--cargo-lockfile",
-        cargo_lockfile,
+        cargo_lockfile or splicing_output_dir.get_child("Cargo.lock"),
         "--config",
         config_file,
         "--splicing-manifest",
@@ -181,9 +218,80 @@
         else:
             fail("Invalid repo: expected Http or Git to exist for crate %s-%s, got %s" % (name, version, repo))
 
+def _package_to_json(p):
+    # Avoid adding unspecified properties.
+    # If we add them as empty strings, cargo-bazel will be unhappy.
+    return json.encode({
+        k: v
+        for k, v in structs.to_dict(p).items()
+        if v or k == "default_features"
+    })
+
+def _get_generator(module_ctx):
+    """Query Network Resources to local a `cargo-bazel` binary.
+
+    Based off get_generator in crates_universe/private/generate_utils.bzl
+
+    Args:
+        module_ctx (module_ctx):  The rules context object
+
+    Returns:
+        tuple(path, dict) The path to a 'cargo-bazel' binary. The pairing (dict)
+            may be `None` if there is not need to update the attribute
+    """
+    host_triple = get_host_triple(module_ctx)
+    use_environ = False
+    for var in GENERATOR_ENV_VARS:
+        if var in module_ctx.os.environ:
+            use_environ = True
+
+    if use_environ:
+        generator_sha256 = module_ctx.os.environ.get(CARGO_BAZEL_GENERATOR_SHA256)
+        generator_url = module_ctx.os.environ.get(CARGO_BAZEL_GENERATOR_URL)
+    elif len(CARGO_BAZEL_URLS) == 0:
+        return module_ctx.path(Label("@cargo_bazel_bootstrap//:cargo-bazel"))
+    else:
+        generator_sha256 = CARGO_BAZEL_SHA256S.get(host_triple.str)
+        generator_url = CARGO_BAZEL_URLS.get(host_triple.str)
+
+    if not generator_url:
+        fail((
+            "No generator URL was found either in the `CARGO_BAZEL_GENERATOR_URL` " +
+            "environment variable or for the `{}` triple in the `generator_urls` attribute"
+        ).format(host_triple.str))
+
+    output = module_ctx.path("cargo-bazel.exe" if "win" in module_ctx.os.name else "cargo-bazel")
+
+    # Download the file into place
+    download_kwargs = {
+        "executable": True,
+        "output": output,
+        "url": generator_url,
+    }
+
+    if generator_sha256:
+        download_kwargs.update({"sha256": generator_sha256})
+
+    module_ctx.download(**download_kwargs)
+    return output
+
 def _crate_impl(module_ctx):
-    cargo_bazel = get_cargo_bazel_runner(module_ctx)
+    # Preload all external repositories. Calling `module_ctx.path` will cause restarts of the implementation
+    # function of the module extension, so we want to trigger all restarts before we start the actual work.
+    # Once https://github.com/bazelbuild/bazel/issues/22729 has been fixed, this code can be removed.
+    get_host_cargo_rustc(module_ctx)
+    for mod in module_ctx.modules:
+        for cfg in mod.tags.from_cargo:
+            module_ctx.path(cfg.cargo_lockfile)
+            for m in cfg.manifests:
+                module_ctx.path(m)
+
+    cargo_bazel_output = _get_generator(module_ctx)
+    cargo_bazel = get_cargo_bazel_runner(module_ctx, cargo_bazel_output)
+
     all_repos = []
+    reproducible = True
+
     for mod in module_ctx.modules:
         module_annotations = {}
         repo_specific_annotations = {}
@@ -198,6 +306,31 @@
             if annotation_dict.pop("gen_all_binaries"):
                 annotation_dict["gen_binaries"] = True
             annotation_dict["gen_build_script"] = _OPT_BOOL_VALUES[annotation_dict["gen_build_script"]]
+
+            # Process the override targets for the annotation.
+            # In the non-bzlmod approach, this is given as a dict
+            # with the possible keys "`proc_macro`, `build_script`, `lib`, `bin`".
+            # With the tag-based approach used in Bzlmod, we run into an issue
+            # where there is no dict type that takes a string as a key and a Label as the value.
+            # To work around this, we split the override option into four, and reconstruct the
+            # dictionary here during processing
+            annotation_dict["override_targets"] = dict()
+            replacement = annotation_dict.pop("override_target_lib")
+            if replacement:
+                annotation_dict["override_targets"]["lib"] = str(replacement)
+
+            replacement = annotation_dict.pop("override_target_proc_macro")
+            if replacement:
+                annotation_dict["override_targets"]["proc_macro"] = str(replacement)
+
+            replacement = annotation_dict.pop("override_target_build_script")
+            if replacement:
+                annotation_dict["override_targets"]["build_script"] = str(replacement)
+
+            replacement = annotation_dict.pop("override_target_bin")
+            if replacement:
+                annotation_dict["override_targets"]["bin"] = str(replacement)
+
             annotation = _crate_universe_crate.annotation(**{
                 k: v
                 for k, v in annotation_dict.items()
@@ -216,27 +349,56 @@
                 ).append(annotation)
 
         local_repos = []
-        for cfg in mod.tags.from_cargo:
+
+        for cfg in mod.tags.from_cargo + mod.tags.from_specs:
             if cfg.name in local_repos:
                 fail("Defined two crate universes with the same name in the same MODULE.bazel file. Use the name tag to give them different names.")
             elif cfg.name in all_repos:
                 fail("Defined two crate universes with the same name in different MODULE.bazel files. Either give one a different name, or use use_extension(isolate=True)")
-
-            annotations = {k: v for k, v in module_annotations.items()}
-            for crate, values in repo_specific_annotations.get(cfg.name, {}).items():
-                _get_or_insert(annotations, crate, []).extend(values)
-            _generate_hub_and_spokes(module_ctx, cargo_bazel, cfg, annotations)
             all_repos.append(cfg.name)
             local_repos.append(cfg.name)
 
+        for cfg in mod.tags.from_cargo:
+            annotations = _annotations_for_repo(
+                module_annotations,
+                repo_specific_annotations.get(cfg.name),
+            )
+
+            cargo_lockfile = module_ctx.path(cfg.cargo_lockfile)
+            manifests = {str(module_ctx.path(m)): str(m) for m in cfg.manifests}
+            _generate_hub_and_spokes(module_ctx, cargo_bazel, cfg, annotations, cargo_lockfile = cargo_lockfile, manifests = manifests)
+
+        for cfg in mod.tags.from_specs:
+            # We don't have a Cargo.lock so the resolution can change.
+            # We could maybe make this reproducible by using `-minimal-version` during resolution.
+            # See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#minimal-versions
+            reproducible = False
+
+            annotations = _annotations_for_repo(
+                module_annotations,
+                repo_specific_annotations.get(cfg.name),
+            )
+
+            packages = {p.package: _package_to_json(p) for p in mod.tags.spec}
+            _generate_hub_and_spokes(module_ctx, cargo_bazel, cfg, annotations, packages = packages)
+
         for repo in repo_specific_annotations:
             if repo not in local_repos:
                 fail("Annotation specified for repo %s, but the module defined repositories %s" % (repo, local_repos))
 
+    metadata_kwargs = {}
+    if bazel_features.external_deps.extension_metadata_has_reproducible:
+        metadata_kwargs["reproducible"] = reproducible
+
+    return module_ctx.extension_metadata(**metadata_kwargs)
+
 _from_cargo = tag_class(
     doc = "Generates a repo @crates from a Cargo.toml / Cargo.lock pair",
     attrs = dict(
-        name = attr.string(doc = "The name of the repo to generate", default = "crates"),
+        name = attr.string(
+            doc = "The name of the repo to generate",
+            default = "crates",
+        ),
         cargo_lockfile = CRATES_VENDOR_ATTRS["cargo_lockfile"],
         manifests = CRATES_VENDOR_ATTRS["manifests"],
         cargo_config = CRATES_VENDOR_ATTRS["cargo_config"],
@@ -249,44 +411,174 @@
 # This should be kept in sync with crate_universe/private/crate.bzl.
 _annotation = tag_class(
     attrs = dict(
-        repositories = attr.string_list(doc = "A list of repository names specified from `crate.from_cargo(name=...)` that this annotation is applied to. Defaults to all repositories.", default = []),
-        crate = attr.string(doc = "The name of the crate the annotation is applied to", mandatory = True),
-        version = attr.string(doc = "The versions of the crate the annotation is applied to. Defaults to all versions.", default = "*"),
-        additive_build_file_content = attr.string(doc = "Extra contents to write to the bottom of generated BUILD files."),
-        additive_build_file = attr.label(doc = "A file containing extra contents to write to the bottom of generated BUILD files."),
-        alias_rule = attr.string(doc = "Alias rule to use instead of `native.alias()`.  Overrides [render_config](#render_config)'s 'default_alias_rule'."),
-        build_script_data = _relative_label_list(doc = "A list of labels to add to a crate's `cargo_build_script::data` attribute."),
-        build_script_tools = _relative_label_list(doc = "A list of labels to add to a crate's `cargo_build_script::tools` attribute."),
-        build_script_data_glob = attr.string_list(doc = "A list of glob patterns to add to a crate's `cargo_build_script::data` attribute"),
-        build_script_deps = _relative_label_list(doc = "A list of labels to add to a crate's `cargo_build_script::deps` attribute."),
-        build_script_env = attr.string_dict(doc = "Additional environment variables to set on a crate's `cargo_build_script::env` attribute."),
-        build_script_proc_macro_deps = _relative_label_list(doc = "A list of labels to add to a crate's `cargo_build_script::proc_macro_deps` attribute."),
-        build_script_rundir = attr.string(doc = "An override for the build script's rundir attribute."),
-        build_script_rustc_env = attr.string_dict(doc = "Additional environment variables to set on a crate's `cargo_build_script::env` attribute."),
-        build_script_toolchains = attr.label_list(doc = "A list of labels to set on a crates's `cargo_build_script::toolchains` attribute."),
-        compile_data = _relative_label_list(doc = "A list of labels to add to a crate's `rust_library::compile_data` attribute."),
-        compile_data_glob = attr.string_list(doc = "A list of glob patterns to add to a crate's `rust_library::compile_data` attribute."),
-        crate_features = attr.string_list(doc = "A list of strings to add to a crate's `rust_library::crate_features` attribute."),
-        data = _relative_label_list(doc = "A list of labels to add to a crate's `rust_library::data` attribute."),
-        data_glob = attr.string_list(doc = "A list of glob patterns to add to a crate's `rust_library::data` attribute."),
-        deps = _relative_label_list(doc = "A list of labels to add to a crate's `rust_library::deps` attribute."),
-        extra_aliased_targets = attr.string_dict(doc = "A list of targets to add to the generated aliases in the root crate_universe repository."),
-        gen_binaries = attr.string_list(doc = "As a list, the subset of the crate's bins that should get `rust_binary` targets produced."),
-        gen_all_binaries = attr.bool(doc = "If true, generates `rust_binary` targets for all of the crates bins"),
-        disable_pipelining = attr.bool(doc = "If True, disables pipelining for library targets for this crate."),
+        repositories = attr.string_list(
+            doc = "A list of repository names specified from `crate.from_cargo(name=...)` that this annotation is applied to. Defaults to all repositories.",
+            default = [],
+        ),
+        crate = attr.string(
+            doc = "The name of the crate the annotation is applied to",
+            mandatory = True,
+        ),
+        version = attr.string(
+            doc = "The versions of the crate the annotation is applied to. Defaults to all versions.",
+            default = "*",
+        ),
+        additive_build_file_content = attr.string(
+            doc = "Extra contents to write to the bottom of generated BUILD files.",
+        ),
+        additive_build_file = attr.label(
+            doc = "A file containing extra contents to write to the bottom of generated BUILD files.",
+        ),
+        alias_rule = attr.string(
+            doc = "Alias rule to use instead of `native.alias()`.  Overrides [render_config](#render_config)'s 'default_alias_rule'.",
+        ),
+        build_script_data = _relative_label_list(
+            doc = "A list of labels to add to a crate's `cargo_build_script::data` attribute.",
+        ),
+        build_script_tools = _relative_label_list(
+            doc = "A list of labels to add to a crate's `cargo_build_script::tools` attribute.",
+        ),
+        build_script_data_glob = attr.string_list(
+            doc = "A list of glob patterns to add to a crate's `cargo_build_script::data` attribute",
+        ),
+        build_script_deps = _relative_label_list(
+            doc = "A list of labels to add to a crate's `cargo_build_script::deps` attribute.",
+        ),
+        build_script_env = attr.string_dict(
+            doc = "Additional environment variables to set on a crate's `cargo_build_script::env` attribute.",
+        ),
+        build_script_proc_macro_deps = _relative_label_list(
+            doc = "A list of labels to add to a crate's `cargo_build_script::proc_macro_deps` attribute.",
+        ),
+        build_script_rundir = attr.string(
+            doc = "An override for the build script's rundir attribute.",
+        ),
+        build_script_rustc_env = attr.string_dict(
+            doc = "Additional environment variables to set on a crate's `cargo_build_script::env` attribute.",
+        ),
+        build_script_toolchains = attr.label_list(
+            doc = "A list of labels to set on a crates's `cargo_build_script::toolchains` attribute.",
+        ),
+        compile_data = _relative_label_list(
+            doc = "A list of labels to add to a crate's `rust_library::compile_data` attribute.",
+        ),
+        compile_data_glob = attr.string_list(
+            doc = "A list of glob patterns to add to a crate's `rust_library::compile_data` attribute.",
+        ),
+        crate_features = attr.string_list(
+            doc = "A list of strings to add to a crate's `rust_library::crate_features` attribute.",
+        ),
+        data = _relative_label_list(
+            doc = "A list of labels to add to a crate's `rust_library::data` attribute.",
+        ),
+        data_glob = attr.string_list(
+            doc = "A list of glob patterns to add to a crate's `rust_library::data` attribute.",
+        ),
+        deps = _relative_label_list(
+            doc = "A list of labels to add to a crate's `rust_library::deps` attribute.",
+        ),
+        extra_aliased_targets = attr.string_dict(
+            doc = "A list of targets to add to the generated aliases in the root crate_universe repository.",
+        ),
+        gen_binaries = attr.string_list(
+            doc = "As a list, the subset of the crate's bins that should get `rust_binary` targets produced.",
+        ),
+        gen_all_binaries = attr.bool(
+            doc = "If true, generates `rust_binary` targets for all of the crates bins",
+        ),
+        disable_pipelining = attr.bool(
+            doc = "If True, disables pipelining for library targets for this crate.",
+        ),
         gen_build_script = attr.string(
             doc = "An authorative flag to determine whether or not to produce `cargo_build_script` targets for the current crate. Supported values are 'on', 'off', and 'auto'.",
             values = _OPT_BOOL_VALUES.keys(),
             default = "auto",
         ),
-        patch_args = attr.string_list(doc = "The `patch_args` attribute of a Bazel repository rule. See [http_archive.patch_args](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patch_args)"),
-        patch_tool = attr.string(doc = "The `patch_tool` attribute of a Bazel repository rule. See [http_archive.patch_tool](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patch_tool)"),
-        patches = attr.label_list(doc = "The `patches` attribute of a Bazel repository rule. See [http_archive.patches](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patches)"),
-        proc_macro_deps = _relative_label_list(doc = "A list of labels to add to a crate's `rust_library::proc_macro_deps` attribute."),
-        rustc_env = attr.string_dict(doc = "Additional variables to set on a crate's `rust_library::rustc_env` attribute."),
-        rustc_env_files = _relative_label_list(doc = "A list of labels to set on a crate's `rust_library::rustc_env_files` attribute."),
-        rustc_flags = attr.string_list(doc = "A list of strings to set on a crate's `rust_library::rustc_flags` attribute."),
-        shallow_since = attr.string(doc = "An optional timestamp used for crates originating from a git repository instead of a crate registry. This flag optimizes fetching the source code."),
+        patch_args = attr.string_list(
+            doc = "The `patch_args` attribute of a Bazel repository rule. See [http_archive.patch_args](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patch_args)",
+        ),
+        patch_tool = attr.string(
+            doc = "The `patch_tool` attribute of a Bazel repository rule. See [http_archive.patch_tool](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patch_tool)",
+        ),
+        patches = attr.label_list(
+            doc = "The `patches` attribute of a Bazel repository rule. See [http_archive.patches](https://docs.bazel.build/versions/main/repo/http.html#http_archive-patches)",
+        ),
+        proc_macro_deps = _relative_label_list(
+            doc = "A list of labels to add to a crate's `rust_library::proc_macro_deps` attribute.",
+        ),
+        rustc_env = attr.string_dict(
+            doc = "Additional variables to set on a crate's `rust_library::rustc_env` attribute.",
+        ),
+        rustc_env_files = _relative_label_list(
+            doc = "A list of labels to set on a crate's `rust_library::rustc_env_files` attribute.",
+        ),
+        rustc_flags = attr.string_list(
+            doc = "A list of strings to set on a crate's `rust_library::rustc_flags` attribute.",
+        ),
+        shallow_since = attr.string(
+            doc = "An optional timestamp used for crates originating from a git repository instead of a crate registry. This flag optimizes fetching the source code.",
+        ),
+        override_target_lib = attr.label(
+            doc = "An optional alternate taget to use when something depends on this crate to allow the parent repo to provide its own version of this dependency.",
+        ),
+        override_target_proc_macro = attr.label(
+            doc = "An optional alternate taget to use when something depends on this crate to allow the parent repo to provide its own version of this dependency.",
+        ),
+        override_target_build_script = attr.label(
+            doc = "An optional alternate taget to use when something depends on this crate to allow the parent repo to provide its own version of this dependency.",
+        ),
+        override_target_bin = attr.label(
+            doc = "An optional alternate taget to use when something depends on this crate to allow the parent repo to provide its own version of this dependency.",
+        ),
+    ),
+)
+
+_from_specs = tag_class(
+    doc = "Generates a repo @crates from the defined `spec` tags",
+    attrs = dict(
+        name = attr.string(doc = "The name of the repo to generate", default = "crates"),
+        cargo_config = CRATES_VENDOR_ATTRS["cargo_config"],
+        generate_binaries = CRATES_VENDOR_ATTRS["generate_binaries"],
+        generate_build_scripts = CRATES_VENDOR_ATTRS["generate_build_scripts"],
+        supported_platform_triples = CRATES_VENDOR_ATTRS["supported_platform_triples"],
+    ),
+)
+
+# This should be kept in sync with crate_universe/private/crate.bzl.
+_spec = tag_class(
+    attrs = dict(
+        package = attr.string(
+            doc = "The explicit name of the package.",
+            mandatory = True,
+        ),
+        version = attr.string(
+            doc = "The exact version of the crate. Cannot be used with `git`.",
+        ),
+        artifact = attr.string(
+            doc = "Set to 'bin' to pull in a binary crate as an artifact dependency. Requires a nightly Cargo.",
+        ),
+        lib = attr.bool(
+            doc = "If using `artifact = 'bin'`, additionally setting `lib = True` declares a dependency on both the package's library and binary, as opposed to just the binary.",
+        ),
+        default_features = attr.bool(
+            doc = "Maps to the `default-features` flag.",
+            default = True,
+        ),
+        features = attr.string_list(
+            doc = "A list of features to use for the crate.",
+        ),
+        git = attr.string(
+            doc = "The Git url to use for the crate. Cannot be used with `version`.",
+        ),
+        branch = attr.string(
+            doc = "The git branch of the remote crate. Tied with the `git` param. Only one of branch, tag or rev may be specified. Specifying `rev` is recommended for fully-reproducible builds.",
+        ),
+        tag = attr.string(
+            doc = "The git tag of the remote crate. Tied with the `git` param. Only one of branch, tag or rev may be specified. Specifying `rev` is recommended for fully-reproducible builds.",
+        ),
+        rev = attr.string(
+            doc = "The git revision of the remote crate. Tied with the `git` param. Only one of branch, tag or rev may be specified.",
+        ),
     ),
 )
 
@@ -295,5 +587,7 @@
     tag_classes = dict(
         from_cargo = _from_cargo,
         annotation = _annotation,
+        from_specs = _from_specs,
+        spec = _spec,
     ),
 )
diff --git a/crate_universe/private/common_utils.bzl b/crate_universe/private/common_utils.bzl
index e8fc97b..923c0e0 100644
--- a/crate_universe/private/common_utils.bzl
+++ b/crate_universe/private/common_utils.bzl
@@ -28,13 +28,14 @@
 {stderr}
 """
 
-def execute(repository_ctx, args, env = {}):
+def execute(repository_ctx, args, env = {}, allow_fail = False):
     """A heler macro for executing some arguments and displaying nicely formatted errors
 
     Args:
         repository_ctx (repository_ctx): The rule's context object.
         args (list): A list of strings which act as `argv` for execution.
         env (dict, optional): Environment variables to set in the execution environment.
+        allow_fail (bool, optional): Allow the process to fail.
 
     Returns:
         struct: The results of `repository_ctx.execute`
@@ -50,7 +51,7 @@
         quiet = quiet,
     )
 
-    if result.return_code:
+    if result.return_code and not allow_fail:
         fail(_EXECUTE_ERROR_MESSAGE.format(
             args = args,
             exit_code = result.return_code,
diff --git a/crate_universe/private/crate.bzl b/crate_universe/private/crate.bzl
index 9d1b5a9..c0141f8 100644
--- a/crate_universe/private/crate.bzl
+++ b/crate_universe/private/crate.bzl
@@ -1,4 +1,4 @@
-"""Macros used for represeting crates or annotations for existing crates"""
+"""Macros used for representing crates or annotations for existing crates"""
 
 load(":common_utils.bzl", "parse_alias_rule")
 
@@ -113,7 +113,8 @@
         rustc_env = None,
         rustc_env_files = None,
         rustc_flags = None,
-        shallow_since = None):
+        shallow_since = None,
+        override_targets = None):
     """A collection of extra attributes and settings for a particular crate
 
     Args:
@@ -166,6 +167,8 @@
         rustc_flags (list, optional): A list of strings to set on a crate's `rust_library::rustc_flags` attribute.
         shallow_since (str, optional): An optional timestamp used for crates originating from a git repository
             instead of a crate registry. This flag optimizes fetching the source code.
+        override_targets (dict, optional): A dictionary of alternate tagets to use when something depends on this crate to allow
+            the parent repo to provide its own version of this dependency. Keys can be `proc_marco`, `build_script`, `lib`, `bin`.
 
     Returns:
         string: A json encoded string containing the specified version and separately all other inputs.
@@ -209,6 +212,7 @@
             rustc_env_files = _stringify_list(rustc_env_files),
             rustc_flags = rustc_flags,
             shallow_since = shallow_since,
+            override_targets = override_targets,
         ),
     ))
 
diff --git a/crate_universe/private/crates_repository.bzl b/crate_universe/private/crates_repository.bzl
index 0a3de51..7924711 100644
--- a/crate_universe/private/crates_repository.bzl
+++ b/crate_universe/private/crates_repository.bzl
@@ -50,6 +50,7 @@
         splicing_manifest = splicing_manifest,
         cargo = cargo_path,
         rustc = rustc_path,
+        repin_instructions = repository_ctx.attr.repin_instructions,
     )
 
     # If re-pinning is enabled, gather additional inputs for the generator
@@ -281,6 +282,9 @@
                 "generate the value for this field. If unset, the defaults defined there will be used."
             ),
         ),
+        "repin_instructions": attr.string(
+            doc = "Instructions to re-pin the repository if required. Many people have wrapper scripts for keeping dependencies up to date, and would like to point users to that instead of the default.",
+        ),
         "rust_toolchain_cargo_template": attr.string(
             doc = (
                 "The template to use for finding the host `cargo` binary. `{version}` (eg. '1.53.0'), " +
diff --git a/crate_universe/private/crates_vendor.bzl b/crate_universe/private/crates_vendor.bzl
index b29c3c0..a20904f 100644
--- a/crate_universe/private/crates_vendor.bzl
+++ b/crate_universe/private/crates_vendor.bzl
@@ -118,7 +118,7 @@
     return args, runfiles
 
 def generate_splicing_manifest(packages, splicing_config, cargo_config, manifests, manifest_to_path):
-    # Deserialize information about direct packges
+    # Deserialize information about direct packages
     direct_packages_info = {
         # Ensure the data is using kebab-case as that's what `cargo_toml::DependencyDetail` expects.
         pkg: kebab_case_keys(dict(json.decode(data)))
@@ -204,24 +204,32 @@
         render_config = default_render_config
 
     if mode == "local":
-        build_file_base_template = "@{}//{}/{{name}}-{{version}}:BUILD.bazel"
+        build_file_base_template = "//{}/{{name}}-{{version}}:BUILD.bazel".format(output_pkg)
+        if workspace_name != "":
+            build_file_base_template = "@{}//{}/{{name}}-{{version}}:BUILD.bazel".format(workspace_name, output_pkg)
         crate_label_template = "//{}/{{name}}-{{version}}:{{target}}".format(
             output_pkg,
         )
     else:
-        build_file_base_template = "@{}//{}:BUILD.{{name}}-{{version}}.bazel"
+        build_file_base_template = "//{}:BUILD.{{name}}-{{version}}.bazel".format(output_pkg)
+        if workspace_name != "":
+            build_file_base_template = "@{}//{}:BUILD.{{name}}-{{version}}.bazel".format(workspace_name, output_pkg)
         crate_label_template = render_config["crate_label_template"]
 
+    # If `workspace_name` is blank (such as when using modules), the `@{}//{}:{{file}}` template would generate
+    # a reference like `Label(@//<stuff>)`. This causes issues if the module doing the `crates_vendor`ing is not the root module.
+    # See: https://github.com/bazelbuild/rules_rust/issues/2661
+    crates_module_template_value = "//{}:{{file}}".format(output_pkg)
+    if workspace_name != "":
+        crates_module_template_value = "@{}//{}:{{file}}".format(
+            workspace_name,
+            output_pkg,
+        )
+
     updates = {
-        "build_file_template": build_file_base_template.format(
-            workspace_name,
-            output_pkg,
-        ),
+        "build_file_template": build_file_base_template,
         "crate_label_template": crate_label_template,
-        "crates_module_template": "@{}//{}:{{file}}".format(
-            workspace_name,
-            output_pkg,
-        ),
+        "crates_module_template": crates_module_template_value,
         "vendor_mode": mode,
     }
 
diff --git a/crate_universe/private/generate_utils.bzl b/crate_universe/private/generate_utils.bzl
index 67784a6..94dcdd2 100644
--- a/crate_universe/private/generate_utils.bzl
+++ b/crate_universe/private/generate_utils.bzl
@@ -336,7 +336,7 @@
         bazel = repository_ctx.path(repository_ctx.attr.lockfile) if repository_ctx.attr.lockfile else None,
     )
 
-def determine_repin(repository_ctx, generator, lockfile_path, config, splicing_manifest, cargo, rustc):
+def determine_repin(repository_ctx, generator, lockfile_path, config, splicing_manifest, cargo, rustc, repin_instructions = None):
     """Use the `cargo-bazel` binary to determine whether or not dpeendencies need to be re-pinned
 
     Args:
@@ -347,6 +347,7 @@
         lockfile_path (path): The path to a "lock" file for reproducible outputs.
         cargo (path): The path to a Cargo binary.
         rustc (path): The path to a Rustc binary.
+        repin_instructions (optional string): Instructions to re-pin dependencies in your repository. Will be shown when re-pinning is required.
 
     Returns:
         bool: True if dependencies need to be re-pinned
@@ -396,20 +397,29 @@
         repository_ctx = repository_ctx,
         args = args,
         env = env,
+        allow_fail = True,
     )
 
     # If it was determined repinning should occur but there was no
     # flag indicating repinning was requested, an error is raised
     # since repinning should be an explicit action
-    if result.stdout.strip().lower() == "repin":
-        fail(("\n".join([
-            result.stderr,
-            (
-                "The current `lockfile` is out of date for '{}'. Please re-run " +
-                "bazel using `CARGO_BAZEL_REPIN=true` if this is expected " +
-                "and the lockfile should be updated."
-            ).format(repository_ctx.name),
-        ])))
+    if result.return_code:
+        if repin_instructions:
+            msg = ("\n".join([
+                result.stderr,
+                "The current `lockfile` is out of date for '{}'.".format(repository_ctx.name),
+                repin_instructions,
+            ]))
+        else:
+            msg = ("\n".join([
+                result.stderr,
+                (
+                    "The current `lockfile` is out of date for '{}'. Please re-run " +
+                    "bazel using `CARGO_BAZEL_REPIN=true` if this is expected " +
+                    "and the lockfile should be updated."
+                ).format(repository_ctx.name),
+            ]))
+        fail(msg)
 
     return False
 
diff --git a/crate_universe/private/module_extensions/BUILD.bazel b/crate_universe/private/module_extensions/BUILD.bazel
index e69de29..e4e2487 100644
--- a/crate_universe/private/module_extensions/BUILD.bazel
+++ b/crate_universe/private/module_extensions/BUILD.bazel
@@ -0,0 +1,13 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+
+filegroup(
+    name = "bzl_srcs",
+    srcs = glob(["*.bzl"]),
+    visibility = ["//visibility:public"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = [":bzl_srcs"],
+    visibility = ["//visibility:public"],
+)
diff --git a/crate_universe/private/module_extensions/cargo_bazel_bootstrap.bzl b/crate_universe/private/module_extensions/cargo_bazel_bootstrap.bzl
index ae98cb8..61ac5e4 100644
--- a/crate_universe/private/module_extensions/cargo_bazel_bootstrap.bzl
+++ b/crate_universe/private/module_extensions/cargo_bazel_bootstrap.bzl
@@ -15,22 +15,32 @@
     doc = """Module extension to generate the cargo_bazel binary.""",
 )
 
-def get_cargo_bazel_runner(module_ctx):
-    """A helper function to allow executing cargo_bazel in module extensions.
+def get_host_cargo_rustc(module_ctx):
+    """A helper function to get the path to the host cargo and rustc binaries.
 
     Args:
         module_ctx: The module extension's context.
-
     Returns:
-        A function that can be called to execute cargo_bazel.
-    """
+        A tuple of path to cargo, path to rustc.
 
+    """
     host_triple = get_host_triple(module_ctx)
     binary_ext = system_to_binary_ext(host_triple.system)
 
     cargo_path = str(module_ctx.path(Label("@rust_host_tools//:bin/cargo{}".format(binary_ext))))
     rustc_path = str(module_ctx.path(Label("@rust_host_tools//:bin/rustc{}".format(binary_ext))))
-    cargo_bazel = module_ctx.path(Label("@cargo_bazel_bootstrap//:cargo-bazel"))
+    return cargo_path, rustc_path
+
+def get_cargo_bazel_runner(module_ctx, cargo_bazel):
+    """A helper function to allow executing cargo_bazel in module extensions.
+
+    Args:
+        module_ctx: The module extension's context.
+        cargo_bazel: Path The path to a `cargo-bazel` binary
+    Returns:
+        A function that can be called to execute cargo_bazel.
+    """
+    cargo_path, rustc_path = get_host_cargo_rustc(module_ctx)
 
     # Placing this as a nested function allows users to call this right at the
     # start of a module extension, thus triggering any restarts as early as
diff --git a/crate_universe/private/selects.bzl b/crate_universe/private/selects.bzl
index 39fc05d..850dbf1 100644
--- a/crate_universe/private/selects.bzl
+++ b/crate_universe/private/selects.bzl
@@ -32,27 +32,3 @@
     with_unmapped = _with_unmapped,
     NO_MATCHING_PLATFORM_TRIPLES = _SENTINEL,
 )
-
-# TODO: No longer used by the serde_starlark-based renderer. Delete after all
-# BUILD files using it have been regenerated.
-#
-# buildifier: disable=function-docstring
-def select_with_or(input_dict, no_match_error = ""):
-    output_dict = {}
-    for (key, value) in input_dict.items():
-        if type(key) == type(()):
-            for config_setting in key:
-                if config_setting in output_dict:
-                    output_dict[config_setting].extend(value)
-                else:
-                    output_dict[config_setting] = list(value)
-        elif key in output_dict:
-            output_dict[key].extend(value)
-        else:
-            output_dict[key] = list(value)
-
-    # return a dict with deduped lists
-    return select(
-        {key: depset(value).to_list() for key, value in output_dict.items()},
-        no_match_error = no_match_error,
-    )
diff --git a/crate_universe/private/splicing_utils.bzl b/crate_universe/private/splicing_utils.bzl
index b3f7704..6234510 100644
--- a/crate_universe/private/splicing_utils.bzl
+++ b/crate_universe/private/splicing_utils.bzl
@@ -34,7 +34,7 @@
     }
 
 def compile_splicing_manifest(splicing_config, manifests, cargo_config_path, packages):
-    """Produce a manifest containing required components for splciing a new Cargo workspace
+    """Produce a manifest containing required components for splicing a new Cargo workspace
 
     [cargo_config]: https://doc.rust-lang.org/cargo/reference/config.html
     [cargo_toml]: https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -56,14 +56,14 @@
         for (pkg, data) in packages.items()
     }
 
-    # Auto-generated splicier manifest values
+    # Auto-generated splicer manifest values
     splicing_manifest_content = {
         "cargo_config": cargo_config_path,
         "direct_packages": direct_packages_info,
         "manifests": manifests,
     }
 
-    return dict(splicing_config.items() + splicing_manifest_content.items())
+    return splicing_config | splicing_manifest_content
 
 def _no_at_label(label):
     """Strips leading '@'s for stringified labels in the main repository for backwards-comaptibility reasons."""
@@ -75,7 +75,7 @@
     return s
 
 def create_splicing_manifest(repository_ctx):
-    """Produce a manifest containing required components for splciing a new Cargo workspace
+    """Produce a manifest containing required components for splicing a new Cargo workspace
 
     Args:
         repository_ctx (repository_ctx): The rule's context object.
@@ -94,9 +94,7 @@
     # Load user configurable splicing settings
     config = json.decode(repository_ctx.attr.splicing_config or splicing_config())
 
-    repo_dir = repository_ctx.path(".")
-
-    splicing_manifest = repository_ctx.path("{}/splicing_manifest.json".format(repo_dir))
+    splicing_manifest = repository_ctx.path("splicing_manifest.json")
 
     data = compile_splicing_manifest(
         splicing_config = config,
@@ -132,7 +130,6 @@
         path: The path to a Cargo metadata json file found in the spliced workspace root.
     """
     repository_ctx.report_progress("Splicing Cargo workspace.")
-    repo_dir = repository_ctx.path(".")
 
     splicing_output_dir = repository_ctx.path("splicing-output")
 
@@ -159,7 +156,7 @@
     if CARGO_BAZEL_DEBUG in repository_ctx.os.environ:
         arguments.extend([
             "--workspace-dir",
-            repository_ctx.path("{}/splicing-workspace".format(repo_dir)),
+            repository_ctx.path("splicing-workspace"),
         ])
 
     env = {
@@ -170,10 +167,10 @@
 
     # Ensure the short hand repin variable is set to the full name.
     if REPIN in repository_ctx.os.environ and CARGO_BAZEL_REPIN not in repository_ctx.os.environ:
-        env.update({CARGO_BAZEL_REPIN: repository_ctx.os.environ[REPIN]})
+        env["CARGO_BAZEL_REPIN"] = repository_ctx.os.environ[REPIN]
 
     # Add any Cargo environment variables to the `cargo-bazel` execution
-    env.update(cargo_environ(repository_ctx))
+    env |= cargo_environ(repository_ctx)
 
     execute(
         repository_ctx = repository_ctx,
@@ -182,11 +179,11 @@
     )
 
     # This file must have been produced by the execution above.
-    spliced_lockfile = repository_ctx.path("{}/Cargo.lock".format(splicing_output_dir))
+    spliced_lockfile = repository_ctx.path(splicing_output_dir.get_child("Cargo.lock"))
     if not spliced_lockfile.exists:
-        fail("Lockfile file does not exist: {}".format(spliced_lockfile))
-    spliced_metadata = repository_ctx.path("{}/metadata.json".format(splicing_output_dir))
+        fail("Lockfile file does not exist: " + str(spliced_lockfile))
+    spliced_metadata = repository_ctx.path(splicing_output_dir.get_child("metadata.json"))
     if not spliced_metadata.exists:
-        fail("Metadata file does not exist: {}".format(spliced_metadata))
+        fail("Metadata file does not exist: " + str(spliced_metadata))
 
     return spliced_metadata
diff --git a/crate_universe/private/srcs.bzl b/crate_universe/private/srcs.bzl
index 1d5933c..124e668 100644
--- a/crate_universe/private/srcs.bzl
+++ b/crate_universe/private/srcs.bzl
@@ -50,5 +50,6 @@
     Label("//crate_universe:src/utils/starlark/select_set.rs"),
     Label("//crate_universe:src/utils/starlark/serialize.rs"),
     Label("//crate_universe:src/utils/starlark/target_compatible_with.rs"),
+    Label("//crate_universe:src/utils/symlink.rs"),
     Label("//crate_universe:src/utils/target_triple.rs"),
 ]
diff --git a/crate_universe/private/vendor_utils.bzl b/crate_universe/private/vendor_utils.bzl
index 71476c9..f35c278 100644
--- a/crate_universe/private/vendor_utils.bzl
+++ b/crate_universe/private/vendor_utils.bzl
@@ -3,14 +3,14 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
 load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
 
-_BUILDIFIER_VERSION = "5.0.1"
-_BUILDIFIER_URL_TEMPLATE = "https://github.com/bazelbuild/buildtools/releases/download/{version}/{bin}"
-_BUILDIFIER_SHA256S = {
-    "buildifier-darwin-amd64": "2cb0a54683633ef6de4e0491072e22e66ac9c6389051432b76200deeeeaf93fb",
-    "buildifier-darwin-arm64": "4da23315f0dccabf878c8227fddbccf35545b23b3cb6225bfcf3107689cc4364",
-    "buildifier-linux-amd64": "3ed7358c7c6a1ca216dc566e9054fd0b97a1482cb0b7e61092be887d42615c5d",
-    "buildifier-linux-arm64": "c657c628fca72b7e0446f1a542231722a10ba4321597bd6f6249a5da6060b6ff",
-    "buildifier-windows-amd64.exe": "45e13b2951e4c611d346dacdaf0aafaa484045a3e7300fbc5dd01a896a688177",
+_BUILDIFIER_VERSION = "7.1.1"
+_BUILDIFIER_URL_TEMPLATE = "https://github.com/bazelbuild/buildtools/releases/download/v{version}/{bin}"
+_BUILDIFIER_INTEGRITY = {
+    "buildifier-darwin-amd64": "sha256-d0YNlXr3oCi7GK223EP6ZLbgAGTkc+rINoq4pwOzp0M=",
+    "buildifier-darwin-arm64": "sha256-yZD0sDsn1qDYb/6TAUcypZwYurDE86TMVjS9OxYp/OM=",
+    "buildifier-linux-amd64": "sha256-VLfyzo8idhz60mRBbpEgVq6chkX1nrZYO4RrSGSh7oM=",
+    "buildifier-linux-arm64": "sha256-HZrx9pVqQ5/KKHii+/dguXyl3wD2aeXRlTvrDEYHrHE=",
+    "buildifier-windows-amd64.exe": "sha256-Mx2IPnyjbIu+KKHoUoqccRAvS+Yj+Tn6PSCk2PAEvqs=",
 }
 
 def crates_vendor_deps():
@@ -21,7 +21,7 @@
     """
     direct_deps = []
 
-    for bin, sha256 in _BUILDIFIER_SHA256S.items():
+    for bin, integrity in _BUILDIFIER_INTEGRITY.items():
         repo = "cargo_bazel.{}".format(bin)
         maybe(
             http_file,
@@ -30,8 +30,8 @@
                 bin = bin,
                 version = _BUILDIFIER_VERSION,
             )],
-            sha256 = sha256,
-            downloaded_file_path = "buildifier.exe",
+            integrity = integrity,
+            downloaded_file_path = "buildifier.exe" if bin.endswith(".exe") else "buildifier",
             executable = True,
         )
         direct_deps.append(struct(repo = repo, is_dev_dep = False))
diff --git a/crate_universe/repositories.bzl b/crate_universe/repositories.bzl
index de5452d..4cadbc9 100644
--- a/crate_universe/repositories.bzl
+++ b/crate_universe/repositories.bzl
@@ -5,7 +5,6 @@
 load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
 load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
 load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
-load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
 
 def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False, **kwargs):
     """Define dependencies of the `cargo-bazel` Rust target
@@ -26,5 +25,4 @@
 
     direct_deps = _vendor_crate_repositories()
     direct_deps.extend(crates_vendor_deps())
-    cross_installer_deps()
     return direct_deps
diff --git a/crate_universe/src/api/lockfile.rs b/crate_universe/src/api/lockfile.rs
index 0c7a1df..fdb4502 100644
--- a/crate_universe/src/api/lockfile.rs
+++ b/crate_universe/src/api/lockfile.rs
@@ -20,7 +20,7 @@
     Ok(lockfile)
 }
 
-/// CargoBazelLockfile provides a view over cargo-bazel's lockfile format,
+/// `CargoBazelLockfile` provides a view over `cargo-bazel`'s lockfile format,
 /// providing information about the third-party dependencies of a workspace.
 /// While the lockfile's format doesn't provide any kind of compatibility guarantees over time,
 /// this type offers an interface which is likely to be publicly supportable.
@@ -122,7 +122,7 @@
     use std::collections::BTreeSet;
 
     #[test]
-    fn test() {
+    fn exercise_public_lockfile_api() {
         let pkg_a = CrateId {
             name: String::from("pkg_a"),
             version: Version::new(0, 1, 0),
@@ -143,8 +143,8 @@
         };
 
         let runfiles = runfiles::Runfiles::create().unwrap();
-        let path = runfiles
-            .rlocation("rules_rust/crate_universe/test_data/cargo_bazel_lockfile/multi_package-cargo-bazel-lock.json");
+        let path = runfiles::rlocation!(
+            runfiles, "rules_rust/crate_universe/test_data/cargo_bazel_lockfile/multi_package-cargo-bazel-lock.json");
 
         let parsed = parse(&path).unwrap();
         assert_eq!(parsed.workspace_members(), want_workspace_member_names);
diff --git a/crate_universe/src/cli/generate.rs b/crate_universe/src/cli/generate.rs
index 6215765..2178f27 100644
--- a/crate_universe/src/cli/generate.rs
+++ b/crate_universe/src/cli/generate.rs
@@ -13,6 +13,7 @@
 use crate::metadata::{load_metadata, Annotations, Cargo};
 use crate::rendering::{write_outputs, Renderer};
 use crate::splicing::SplicingManifest;
+use crate::utils::normalize_cargo_file_paths;
 
 /// Command line options for the `generate` subcommand
 #[derive(Parser, Debug)]
@@ -77,23 +78,30 @@
             let outputs = Renderer::new(config.rendering, config.supported_platform_triples)
                 .render(&context)?;
 
+            // make file paths compatible with bazel labels
+            let normalized_outputs = normalize_cargo_file_paths(outputs, &opt.repository_dir);
+
             // Write the outputs to disk
-            write_outputs(outputs, &opt.repository_dir, opt.dry_run)?;
+            write_outputs(normalized_outputs, opt.dry_run)?;
 
             return Ok(());
         }
     }
 
     // Ensure Cargo and Rustc are available for use during generation.
-    let cargo_bin = Cargo::new(match opt.cargo {
-        Some(bin) => bin,
-        None => bail!("The `--cargo` argument is required when generating unpinned content"),
-    });
     let rustc_bin = match &opt.rustc {
         Some(bin) => bin,
         None => bail!("The `--rustc` argument is required when generating unpinned content"),
     };
 
+    let cargo_bin = Cargo::new(
+        match opt.cargo {
+            Some(bin) => bin,
+            None => bail!("The `--cargo` argument is required when generating unpinned content"),
+        },
+        rustc_bin.clone(),
+    );
+
     // Ensure a path to a metadata file was provided
     let metadata_path = match &opt.metadata {
         Some(path) => path,
@@ -107,7 +115,7 @@
     let annotations = Annotations::new(cargo_metadata, cargo_lockfile.clone(), config.clone())?;
 
     // Generate renderable contexts for each package
-    let context = Context::new(annotations)?;
+    let context = Context::new(annotations, config.rendering.are_sources_present())?;
 
     // Render build files
     let outputs = Renderer::new(
@@ -116,8 +124,11 @@
     )
     .render(&context)?;
 
-    // Write outputs
-    write_outputs(outputs, &opt.repository_dir, opt.dry_run)?;
+    // make file paths compatible with bazel labels
+    let normalized_outputs = normalize_cargo_file_paths(outputs, &opt.repository_dir);
+
+    // Write the outputs to disk
+    write_outputs(normalized_outputs, opt.dry_run)?;
 
     // Ensure Bazel lockfiles are written to disk so future generations can be short-circuited.
     if let Some(lockfile) = opt.lockfile {
diff --git a/crate_universe/src/cli/query.rs b/crate_universe/src/cli/query.rs
index 51bacaa..1ca547e 100644
--- a/crate_universe/src/cli/query.rs
+++ b/crate_universe/src/cli/query.rs
@@ -3,7 +3,7 @@
 use std::fs;
 use std::path::PathBuf;
 
-use anyhow::Result;
+use anyhow::{bail, Result};
 use clap::Parser;
 
 use crate::config::Config;
@@ -42,19 +42,19 @@
     // Read the lockfile
     let content = match fs::read_to_string(&opt.lockfile) {
         Ok(c) => c,
-        Err(_) => return announce_repin("Unable to read lockfile"),
+        Err(_) => bail!("Unable to read lockfile"),
     };
 
     // Deserialize it so we can easily compare it with
     let lockfile: Context = match serde_json::from_str(&content) {
         Ok(ctx) => ctx,
-        Err(_) => return announce_repin("Could not load lockfile"),
+        Err(_) => bail!("Could not load lockfile"),
     };
 
     // Check to see if a digest has been set
     let digest = match &lockfile.checksum {
         Some(d) => d.clone(),
-        None => return announce_repin("No digest provided in lockfile"),
+        None => bail!("No digest provided in lockfile"),
     };
 
     // Load the config file
@@ -67,19 +67,14 @@
         &lockfile,
         &config,
         &splicing_manifest,
-        &Cargo::new(opt.cargo),
+        &Cargo::new(opt.cargo, opt.rustc.clone()),
         &opt.rustc,
     )?;
+
     if digest != expected {
-        return announce_repin(&format!("Digests do not match: {digest:?} != {expected:?}",));
+        bail!("Digests do not match: Current {digest:?} != Expected {expected:?}");
     }
 
     // There is no need to repin
     Ok(())
 }
-
-fn announce_repin(reason: &str) -> Result<()> {
-    eprintln!("{reason}");
-    println!("repin");
-    Ok(())
-}
diff --git a/crate_universe/src/cli/splice.rs b/crate_universe/src/cli/splice.rs
index 207c33e..bc9da74 100644
--- a/crate_universe/src/cli/splice.rs
+++ b/crate_universe/src/cli/splice.rs
@@ -8,7 +8,7 @@
 use crate::cli::Result;
 use crate::config::Config;
 use crate::metadata::{
-    write_metadata, Cargo, CargoUpdateRequest, FeatureGenerator, Generator, MetadataGenerator,
+    write_metadata, Cargo, CargoUpdateRequest, Generator, MetadataGenerator, TreeResolver,
 };
 use crate::splicing::{generate_lockfile, Splicer, SplicingManifest, WorkspaceMetadata};
 
@@ -45,7 +45,7 @@
     #[clap(long)]
     pub cargo_config: Option<PathBuf>,
 
-    /// The path to the config file (containing `cargo_bazel::config::Config`.)
+    /// The path to the config file (containing [crate::config::Config].)
     #[clap(long)]
     pub config: PathBuf,
 
@@ -61,7 +61,8 @@
 /// Combine a set of disjoint manifests into a single workspace.
 pub fn splice(opt: SpliceOptions) -> Result<()> {
     // Load the all config files required for splicing a workspace
-    let splicing_manifest = SplicingManifest::try_from_path(&opt.splicing_manifest)?;
+    let splicing_manifest = SplicingManifest::try_from_path(&opt.splicing_manifest)
+        .context("Failed to parse splicing manifest")?;
 
     // Determine the splicing workspace
     let temp_dir;
@@ -76,34 +77,39 @@
     // Generate a splicer for creating a Cargo workspace manifest
     let splicer = Splicer::new(splicing_dir, splicing_manifest)?;
 
-    // Splice together the manifest
-    let manifest_path = splicer.splice_workspace(&opt.cargo)?;
+    let cargo = Cargo::new(opt.cargo, opt.rustc.clone());
 
-    let cargo = Cargo::new(opt.cargo);
+    // Splice together the manifest
+    let manifest_path = splicer
+        .splice_workspace(&cargo)
+        .context("Failed to splice workspace")?;
 
     // Generate a lockfile
     let cargo_lockfile = generate_lockfile(
         &manifest_path,
         &opt.cargo_lockfile,
         cargo.clone(),
-        &opt.rustc,
         &opt.repin,
-    )?;
+    )
+    .context("Failed to generate lockfile")?;
 
-    let config = Config::try_from_path(&opt.config)?;
+    let config = Config::try_from_path(&opt.config).context("Failed to parse config")?;
 
-    let feature_map = FeatureGenerator::new(cargo.clone(), opt.rustc.clone()).generate(
-        manifest_path.as_path_buf(),
-        &config.supported_platform_triples,
-    )?;
+    let resolver_data = TreeResolver::new(cargo.clone())
+        .generate(
+            manifest_path.as_path_buf(),
+            &config.supported_platform_triples,
+        )
+        .context("Failed to generate features")?;
     // Write the registry url info to the manifest now that a lockfile has been generated
     WorkspaceMetadata::write_registry_urls_and_feature_map(
         &cargo,
         &cargo_lockfile,
-        feature_map,
+        resolver_data,
         manifest_path.as_path_buf(),
         manifest_path.as_path_buf(),
-    )?;
+    )
+    .context("Failed to write registry URLs and feature map")?;
 
     let output_dir = opt.output_dir.clone();
 
@@ -111,7 +117,8 @@
     let (cargo_metadata, _) = Generator::new()
         .with_cargo(cargo)
         .with_rustc(opt.rustc)
-        .generate(manifest_path.as_path_buf())?;
+        .generate(manifest_path.as_path_buf())
+        .context("Failed to generate cargo metadata")?;
 
     let cargo_lockfile_path = manifest_path
         .as_path_buf()
@@ -128,7 +135,8 @@
     std::fs::create_dir_all(&output_dir)
         .with_context(|| format!("Failed to create directories for {}", &output_dir.display()))?;
 
-    write_metadata(&opt.output_dir.join("metadata.json"), &cargo_metadata)?;
+    write_metadata(&opt.output_dir.join("metadata.json"), &cargo_metadata)
+        .context("Failed to write metadata")?;
 
     std::fs::copy(cargo_lockfile_path, output_dir.join("Cargo.lock"))
         .context("Failed to copy lockfile")?;
diff --git a/crate_universe/src/cli/vendor.rs b/crate_universe/src/cli/vendor.rs
index bddd025..036b47d 100644
--- a/crate_universe/src/cli/vendor.rs
+++ b/crate_universe/src/cli/vendor.rs
@@ -12,10 +12,11 @@
 use crate::config::{Config, VendorMode};
 use crate::context::Context;
 use crate::metadata::CargoUpdateRequest;
-use crate::metadata::FeatureGenerator;
+use crate::metadata::TreeResolver;
 use crate::metadata::{Annotations, Cargo, Generator, MetadataGenerator, VendorGenerator};
 use crate::rendering::{render_module_label, write_outputs, Renderer};
 use crate::splicing::{generate_lockfile, Splicer, SplicingManifest, WorkspaceMetadata};
+use crate::utils::normalize_cargo_file_paths;
 
 /// Command line options for the `vendor` subcommand
 #[derive(Parser, Debug)]
@@ -125,26 +126,25 @@
     let splicer = Splicer::new(PathBuf::from(temp_dir.as_ref()), splicing_manifest)
         .context("Failed to create splicer")?;
 
+    let cargo = Cargo::new(opt.cargo, opt.rustc.clone());
+
     // Splice together the manifest
     let manifest_path = splicer
-        .splice_workspace(&opt.cargo)
+        .splice_workspace(&cargo)
         .context("Failed to splice workspace")?;
 
-    let cargo = Cargo::new(opt.cargo);
-
     // Gather a cargo lockfile
     let cargo_lockfile = generate_lockfile(
         &manifest_path,
         &opt.cargo_lockfile,
         cargo.clone(),
-        &opt.rustc,
         &opt.repin,
     )?;
 
     // Load the config from disk
     let config = Config::try_from_path(&opt.config)?;
 
-    let feature_map = FeatureGenerator::new(cargo.clone(), opt.rustc.clone()).generate(
+    let resolver_data = TreeResolver::new(cargo.clone()).generate(
         manifest_path.as_path_buf(),
         &config.supported_platform_triples,
     )?;
@@ -153,7 +153,7 @@
     WorkspaceMetadata::write_registry_urls_and_feature_map(
         &cargo,
         &cargo_lockfile,
-        feature_map,
+        resolver_data,
         manifest_path.as_path_buf(),
         manifest_path.as_path_buf(),
     )?;
@@ -168,7 +168,7 @@
     let annotations = Annotations::new(cargo_metadata, cargo_lockfile.clone(), config.clone())?;
 
     // Generate renderable contexts for earch package
-    let context = Context::new(annotations)?;
+    let context = Context::new(annotations, config.rendering.are_sources_present())?;
 
     // Render build files
     let outputs = Renderer::new(
@@ -177,9 +177,6 @@
     )
     .render(&context)?;
 
-    // Cache the file names for potential use with buildifier
-    let file_names: BTreeSet<PathBuf> = outputs.keys().cloned().collect();
-
     // First ensure vendoring and rendering happen in a clean directory
     let vendor_dir_label = render_module_label(&config.rendering.crates_module_template, "BUILD")?;
     let vendor_dir = opt.workspace_dir.join(vendor_dir_label.package().unwrap());
@@ -194,16 +191,20 @@
             .context("Failed to write Cargo.lock file back to the workspace.")?;
     }
 
-    // Vendor the crates from the spliced workspace
     if matches!(config.rendering.vendor_mode, Some(VendorMode::Local)) {
         VendorGenerator::new(cargo, opt.rustc.clone())
             .generate(manifest_path.as_path_buf(), &vendor_dir)
             .context("Failed to vendor dependencies")?;
     }
 
+    // make cargo versioned crates compatible with bazel labels
+    let normalized_outputs = normalize_cargo_file_paths(outputs, &opt.workspace_dir);
+
+    // buildifier files to check
+    let file_names: BTreeSet<PathBuf> = normalized_outputs.keys().cloned().collect();
+
     // Write outputs
-    write_outputs(outputs, &opt.workspace_dir, opt.dry_run)
-        .context("Failed writing output files")?;
+    write_outputs(normalized_outputs, opt.dry_run).context("Failed writing output files")?;
 
     // Optionally apply buildifier fixes
     if let Some(buildifier_bin) = opt.buildifier {
diff --git a/crate_universe/src/config.rs b/crate_universe/src/config.rs
index 6a5913d..2559877 100644
--- a/crate_universe/src/config.rs
+++ b/crate_universe/src/config.rs
@@ -2,7 +2,6 @@
 
 use std::cmp::Ordering;
 use std::collections::{BTreeMap, BTreeSet};
-use std::convert::AsRef;
 use std::fmt::Formatter;
 use std::iter::Sum;
 use std::ops::Add;
@@ -23,7 +22,7 @@
 use crate::utils::target_triple::TargetTriple;
 
 /// Representations of different kinds of crate vendoring into workspaces.
-#[derive(Debug, Serialize, Deserialize, Clone)]
+#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
 #[serde(rename_all = "lowercase")]
 pub(crate) enum VendorMode {
     /// Crates having full source being vendored into a workspace
@@ -123,6 +122,12 @@
     }
 }
 
+impl RenderConfig {
+    pub(crate) fn are_sources_present(&self) -> bool {
+        self.vendor_mode == Some(VendorMode::Local)
+    }
+}
+
 fn default_build_file_template() -> String {
     "//:BUILD.{name}-{version}.bazel".to_owned()
 }
@@ -174,24 +179,6 @@
     }
 }
 
-/// Information representing deterministic identifiers for some remote asset.
-#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
-pub(crate) enum Checksumish {
-    Http {
-        /// The sha256 digest of an http archive
-        sha256: Option<String>,
-    },
-    Git {
-        /// The revision of the git repository
-        commitsh: Commitish,
-
-        /// An optional date, not after the specified commit; the argument is
-        /// not allowed if a tag is specified (which allows cloning with depth
-        /// 1).
-        shallow_since: Option<String>,
-    },
-}
-
 #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, Clone)]
 pub(crate) enum AliasRule {
     #[default]
@@ -339,6 +326,9 @@
 
     /// Transition rule to use instead of `native.alias()`.
     pub(crate) alias_rule: Option<AliasRule>,
+
+    /// The crates to use instead of the generated one.
+    pub(crate) override_targets: Option<BTreeMap<String, Label>>,
 }
 
 macro_rules! joined_extra_member {
@@ -411,6 +401,7 @@
             patches: joined_extra_member!(self.patches, rhs.patches, BTreeSet::new, BTreeSet::extend),
             extra_aliased_targets: joined_extra_member!(self.extra_aliased_targets, rhs.extra_aliased_targets, BTreeMap::new, BTreeMap::extend),
             alias_rule: self.alias_rule.or(rhs.alias_rule),
+            override_targets: self.override_targets.or(rhs.override_targets),
         };
 
         output
@@ -928,8 +919,10 @@
     #[test]
     fn deserialize_config() {
         let runfiles = runfiles::Runfiles::create().unwrap();
-        let path = runfiles
-            .rlocation("rules_rust/crate_universe/test_data/serialized_configs/config.json");
+        let path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/serialized_configs/config.json"
+        );
 
         let content = std::fs::read_to_string(path).unwrap();
 
diff --git a/crate_universe/src/context.rs b/crate_universe/src/context.rs
index f962afc..204bdaf 100644
--- a/crate_universe/src/context.rs
+++ b/crate_universe/src/context.rs
@@ -11,7 +11,6 @@
 use serde::{Deserialize, Serialize};
 
 use crate::config::CrateId;
-use crate::context::crate_context::{CrateContext, CrateDependency, Rule};
 use crate::context::platforms::resolve_cfg_platforms;
 use crate::lockfile::Digest;
 use crate::metadata::{Annotations, Dependency};
@@ -53,7 +52,7 @@
         Ok(serde_json::from_str(&data)?)
     }
 
-    pub(crate) fn new(annotations: Annotations) -> Result<Self> {
+    pub(crate) fn new(annotations: Annotations, sources_are_present: bool) -> Result<Self> {
         // Build a map of crate contexts
         let crates: BTreeMap<CrateId, CrateContext> = annotations
             .metadata
@@ -65,9 +64,10 @@
                     &annotations.metadata.packages,
                     &annotations.lockfile.crates,
                     &annotations.pairred_extras,
-                    &annotations.crate_features,
+                    &annotations.metadata.workspace_metadata.tree_metadata,
                     annotations.config.generate_binaries,
                     annotations.config.generate_build_scripts,
+                    sources_are_present,
                 );
                 let id = CrateId::new(context.name.clone(), context.version.clone());
                 (id, context)
@@ -84,7 +84,7 @@
             .collect();
 
         // Given a list of all conditional dependencies, build a set of platform
-        // triples which satsify the conditions.
+        // triples which satisfy the conditions.
         let conditions = resolve_cfg_platforms(
             crates.values().collect(),
             &annotations.config.supported_platform_triples,
@@ -240,7 +240,7 @@
         )
         .unwrap();
 
-        Context::new(annotations).unwrap()
+        Context::new(annotations, false).unwrap()
     }
 
     fn mock_context_aliases() -> Context {
@@ -251,11 +251,11 @@
         )
         .unwrap();
 
-        Context::new(annotations).unwrap()
+        Context::new(annotations, false).unwrap()
     }
 
     #[test]
-    fn workspace_member_deps() {
+    fn workspace_member_deps_collection() {
         let context = mock_context_common();
         let workspace_member_deps = context.workspace_member_deps();
 
@@ -283,9 +283,10 @@
                 .collect::<Vec<_>>(),
             [
                 (&CrateId::new("log".to_owned(), Version::new(0, 3, 9)), false),
-                (&CrateId::new("log".to_owned(), Version::new(0, 4, 14)), false),
+                (&CrateId::new("log".to_owned(), Version::new(0, 4, 21)), false),
                 (&CrateId::new("names".to_owned(), Version::parse("0.12.1-dev").unwrap()), false),
                 (&CrateId::new("names".to_owned(), Version::new(0, 13, 0)), false),
+                (&CrateId::new("surrealdb".to_owned(), Version::new(1, 3, 1)), false),
                 (&CrateId::new("value-bag".to_owned(), Version::parse("1.0.0-alpha.7").unwrap()), false),
             ],
         }
@@ -295,7 +296,7 @@
     fn serialization() {
         let context = mock_context_aliases();
 
-        // Seralize and deseralize the context object
+        // Serialize and deserialize the context object
         let json_text = serde_json::to_string(&context).unwrap();
         let deserialized_context: Context = serde_json::from_str(&json_text).unwrap();
 
diff --git a/crate_universe/src/context/crate_context.rs b/crate_universe/src/context/crate_context.rs
index 1f56e4d..88cb11b 100644
--- a/crate_universe/src/context/crate_context.rs
+++ b/crate_universe/src/context/crate_context.rs
@@ -6,7 +6,9 @@
 use serde::{Deserialize, Serialize};
 
 use crate::config::{AliasRule, CrateId, GenBinaries};
-use crate::metadata::{CrateAnnotation, Dependency, PairedExtras, SourceAnnotation};
+use crate::metadata::{
+    CrateAnnotation, Dependency, PairedExtras, SourceAnnotation, TreeResolverMetadata,
+};
 use crate::select::Select;
 use crate::utils::sanitize_module_name;
 use crate::utils::starlark::{Glob, Label};
@@ -59,6 +61,28 @@
     BuildScript(TargetAttributes),
 }
 
+impl Rule {
+    /// The keys that can be used in override_targets to override these Rule sources.
+    /// These intentionally match the accepted `Target.kind`s returned by cargo-metadata.
+    pub(crate) fn override_target_key(&self) -> &'static str {
+        match self {
+            Self::Library(..) => "lib",
+            Self::ProcMacro(..) => "proc-macro",
+            Self::Binary(..) => "bin",
+            Self::BuildScript(..) => "custom-build",
+        }
+    }
+
+    pub(crate) fn crate_name(&self) -> &str {
+        match self {
+            Self::Library(attrs)
+            | Self::ProcMacro(attrs)
+            | Self::Binary(attrs)
+            | Self::BuildScript(attrs) => &attrs.crate_name,
+        }
+    }
+}
+
 /// A set of attributes common to most `rust_library`, `rust_proc_macro`, and other
 /// [core rules of `rules_rust`](https://bazelbuild.github.io/rules_rust/defs.html).
 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
@@ -310,17 +334,24 @@
     #[serde(skip_serializing_if = "Option::is_none")]
     #[serde(default)]
     pub(crate) alias_rule: Option<AliasRule>,
+
+    /// Targets to use instead of the default target for the crate.
+    #[serde(skip_serializing_if = "BTreeMap::is_empty")]
+    #[serde(default)]
+    pub(crate) override_targets: BTreeMap<String, Label>,
 }
 
 impl CrateContext {
+    #[allow(clippy::too_many_arguments)]
     pub(crate) fn new(
         annotation: &CrateAnnotation,
         packages: &BTreeMap<PackageId, Package>,
         source_annotations: &BTreeMap<PackageId, SourceAnnotation>,
         extras: &BTreeMap<CrateId, PairedExtras>,
-        crate_features: &BTreeMap<CrateId, Select<BTreeSet<String>>>,
+        resolver_data: &TreeResolverMetadata,
         include_binaries: bool,
         include_build_scripts: bool,
+        sources_are_present: bool,
     ) -> Self {
         let package: &Package = &packages[&annotation.node.id];
         let current_crate_id = CrateId::new(package.name.clone(), package.version.clone());
@@ -350,13 +381,22 @@
             .clone()
             .map(new_crate_dep);
 
+        let crate_features = resolver_data
+            .get(&current_crate_id)
+            .map(|tree_data| {
+                let mut select = Select::<BTreeSet<String>>::new();
+                for (config, data) in tree_data.items() {
+                    for feature in data.features {
+                        select.insert(feature, config.clone());
+                    }
+                }
+                select
+            })
+            .unwrap_or_default();
+
         // Gather all "common" attributes
         let mut common_attrs = CommonAttributes {
-            crate_features: crate_features
-                .get(&current_crate_id)
-                .cloned()
-                .unwrap_or_default(),
-
+            crate_features,
             deps,
             deps_dev,
             edition: package.edition.as_str().to_string(),
@@ -389,6 +429,7 @@
             packages,
             gen_binaries,
             include_build_scripts,
+            sources_are_present,
         );
 
         // Parse the library crate name from the set of included targets
@@ -486,6 +527,7 @@
             disable_pipelining: false,
             extra_aliased_targets: BTreeMap::new(),
             alias_rule: None,
+            override_targets: BTreeMap::new(),
         }
         .with_overrides(extras)
     }
@@ -629,7 +671,7 @@
 
             // Git shallow_since
             if let Some(SourceAnnotation::Git { shallow_since, .. }) = &mut self.repository {
-                *shallow_since = crate_extra.shallow_since.clone()
+                shallow_since.clone_from(&crate_extra.shallow_since);
             }
 
             // Patch attributes
@@ -641,9 +683,9 @@
                         patches,
                         ..
                     } => {
-                        *patch_args = crate_extra.patch_args.clone();
-                        *patch_tool = crate_extra.patch_tool.clone();
-                        *patches = crate_extra.patches.clone();
+                        patch_args.clone_from(&crate_extra.patch_args);
+                        patch_tool.clone_from(&crate_extra.patch_tool);
+                        patches.clone_from(&crate_extra.patches);
                     }
                     SourceAnnotation::Http {
                         patch_args,
@@ -651,12 +693,16 @@
                         patches,
                         ..
                     } => {
-                        *patch_args = crate_extra.patch_args.clone();
-                        *patch_tool = crate_extra.patch_tool.clone();
-                        *patches = crate_extra.patches.clone();
+                        patch_args.clone_from(&crate_extra.patch_args);
+                        patch_tool.clone_from(&crate_extra.patch_tool);
+                        patches.clone_from(&crate_extra.patches);
                     }
                 }
             }
+
+            if let Some(override_targets) = &crate_extra.override_targets {
+                self.override_targets.extend(override_targets.clone());
+            }
         }
 
         self
@@ -708,6 +754,7 @@
         packages: &BTreeMap<PackageId, Package>,
         gen_binaries: &GenBinaries,
         include_build_scripts: bool,
+        sources_are_present: bool,
     ) -> BTreeSet<Rule> {
         let package = &packages[&node.id];
 
@@ -738,7 +785,7 @@
                         return Some(Rule::BuildScript(TargetAttributes {
                             crate_name,
                             crate_root,
-                            srcs: Glob::new_rust_srcs(),
+                            srcs: Glob::new_rust_srcs(!sources_are_present),
                         }));
                     }
 
@@ -747,7 +794,7 @@
                         return Some(Rule::ProcMacro(TargetAttributes {
                             crate_name,
                             crate_root,
-                            srcs: Glob::new_rust_srcs(),
+                            srcs: Glob::new_rust_srcs(!sources_are_present),
                         }));
                     }
 
@@ -756,7 +803,7 @@
                         return Some(Rule::Library(TargetAttributes {
                             crate_name,
                             crate_root,
-                            srcs: Glob::new_rust_srcs(),
+                            srcs: Glob::new_rust_srcs(!sources_are_present),
                         }));
                     }
 
@@ -770,7 +817,7 @@
                         return Some(Rule::Binary(TargetAttributes {
                             crate_name: target.name.clone(),
                             crate_root,
-                            srcs: Glob::new_rust_srcs(),
+                            srcs: Glob::new_rust_srcs(!sources_are_present),
                         }));
                     }
 
@@ -785,8 +832,10 @@
 mod test {
     use super::*;
 
+    use semver::Version;
+
     use crate::config::CrateAnnotations;
-    use crate::metadata::Annotations;
+    use crate::metadata::{Annotations, CargoTreeEntry};
 
     fn common_annotations() -> Annotations {
         Annotations::new(
@@ -802,19 +851,21 @@
         let annotations = common_annotations();
 
         let crate_annotation = &annotations.metadata.crates[&PackageId {
-            repr: "common 0.1.0 (path+file://{TEMP_DIR}/common)".to_owned(),
+            repr: "path+file://{TEMP_DIR}/common#0.1.0".to_owned(),
         }];
 
         let include_binaries = false;
         let include_build_scripts = false;
+        let are_sources_present = false;
         let context = CrateContext::new(
             crate_annotation,
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &annotations.pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "common");
@@ -823,7 +874,7 @@
             BTreeSet::from([Rule::Library(TargetAttributes {
                 crate_name: "common".to_owned(),
                 crate_root: Some("lib.rs".to_owned()),
-                srcs: Glob::new_rust_srcs(),
+                srcs: Glob::new_rust_srcs(!are_sources_present),
             })]),
         );
     }
@@ -833,7 +884,7 @@
         let annotations = common_annotations();
 
         let package_id = PackageId {
-            repr: "common 0.1.0 (path+file://{TEMP_DIR}/common)".to_owned(),
+            repr: "path+file://{TEMP_DIR}/common#0.1.0".to_owned(),
         };
 
         let crate_annotation = &annotations.metadata.crates[&package_id];
@@ -853,14 +904,16 @@
 
         let include_binaries = false;
         let include_build_scripts = false;
+        let are_sources_present = false;
         let context = CrateContext::new(
             crate_annotation,
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "common");
@@ -870,12 +923,12 @@
                 Rule::Library(TargetAttributes {
                     crate_name: "common".to_owned(),
                     crate_root: Some("lib.rs".to_owned()),
-                    srcs: Glob::new_rust_srcs(),
+                    srcs: Glob::new_rust_srcs(!are_sources_present),
                 }),
                 Rule::Binary(TargetAttributes {
                     crate_name: "common-bin".to_owned(),
                     crate_root: Some("main.rs".to_owned()),
-                    srcs: Glob::new_rust_srcs(),
+                    srcs: Glob::new_rust_srcs(!are_sources_present),
                 }),
             ]),
         );
@@ -908,7 +961,7 @@
         let annotations = build_script_annotations();
 
         let package_id = PackageId {
-            repr: "openssl-sys 0.9.87 (registry+https://github.com/rust-lang/crates.io-index)"
+            repr: "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.87"
                 .to_owned(),
         };
 
@@ -916,14 +969,16 @@
 
         let include_binaries = false;
         let include_build_scripts = true;
+        let are_sources_present = false;
         let context = CrateContext::new(
             crate_annotation,
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &annotations.pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "openssl-sys");
@@ -934,12 +989,12 @@
                 Rule::Library(TargetAttributes {
                     crate_name: "openssl_sys".to_owned(),
                     crate_root: Some("src/lib.rs".to_owned()),
-                    srcs: Glob::new_rust_srcs(),
+                    srcs: Glob::new_rust_srcs(!are_sources_present),
                 }),
                 Rule::BuildScript(TargetAttributes {
                     crate_name: "build_script_main".to_owned(),
                     crate_root: Some("build/main.rs".to_owned()),
-                    srcs: Glob::new_rust_srcs(),
+                    srcs: Glob::new_rust_srcs(!are_sources_present),
                 })
             ]),
         );
@@ -953,7 +1008,7 @@
         let annotations = build_script_annotations();
 
         let package_id = PackageId {
-            repr: "openssl-sys 0.9.87 (registry+https://github.com/rust-lang/crates.io-index)"
+            repr: "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.87"
                 .to_owned(),
         };
 
@@ -961,14 +1016,16 @@
 
         let include_binaries = false;
         let include_build_scripts = false;
+        let are_sources_present = false;
         let context = CrateContext::new(
             crate_annotation,
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &annotations.pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "openssl-sys");
@@ -978,7 +1035,7 @@
             BTreeSet::from([Rule::Library(TargetAttributes {
                 crate_name: "openssl_sys".to_owned(),
                 crate_root: Some("src/lib.rs".to_owned()),
-                srcs: Glob::new_rust_srcs(),
+                srcs: Glob::new_rust_srcs(!are_sources_present),
             })]),
         );
     }
@@ -988,22 +1045,23 @@
         let annotations = crate_type_annotations();
 
         let package_id = PackageId {
-            repr: "sysinfo 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)"
-                .to_owned(),
+            repr: "registry+https://github.com/rust-lang/crates.io-index#sysinfo@0.22.5".to_owned(),
         };
 
         let crate_annotation = &annotations.metadata.crates[&package_id];
 
         let include_binaries = false;
         let include_build_scripts = false;
+        let are_sources_present = false;
         let context = CrateContext::new(
             crate_annotation,
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &annotations.pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "sysinfo");
@@ -1013,7 +1071,7 @@
             BTreeSet::from([Rule::Library(TargetAttributes {
                 crate_name: "sysinfo".to_owned(),
                 crate_root: Some("src/lib.rs".to_owned()),
-                srcs: Glob::new_rust_srcs(),
+                srcs: Glob::new_rust_srcs(!are_sources_present),
             })]),
         );
     }
@@ -1024,10 +1082,11 @@
     ) {
         let mut annotations = common_annotations();
         let crate_annotation = &annotations.metadata.crates[&PackageId {
-            repr: "common 0.1.0 (path+file://{TEMP_DIR}/common)".to_owned(),
+            repr: "path+file://{TEMP_DIR}/common#0.1.0".to_owned(),
         }];
         let include_binaries = false;
         let include_build_scripts = false;
+        let are_sources_present = false;
 
         let package = annotations
             .metadata
@@ -1041,9 +1100,10 @@
             &annotations.metadata.packages,
             &annotations.lockfile.crates,
             &annotations.pairred_extras,
-            &annotations.crate_features,
+            &annotations.metadata.workspace_metadata.tree_metadata,
             include_binaries,
             include_build_scripts,
+            are_sources_present,
         );
 
         assert_eq!(context.name, "common");
@@ -1072,7 +1132,7 @@
                 package.license = Some("NonSPDXLicenseID".to_owned());
             },
             |context| {
-                assert_eq!(context.license_ids, BTreeSet::default(),);
+                assert_eq!(context.license_ids, BTreeSet::default());
             },
         );
     }
@@ -1084,7 +1144,7 @@
                 package.license_file = Some("LICENSE.txt".into());
             },
             |context| {
-                assert_eq!(context.license_file, Some("LICENSE.txt".to_owned()),);
+                assert_eq!(context.license_file, Some("LICENSE.txt".to_owned()));
             },
         );
     }
@@ -1136,4 +1196,51 @@
             },
         );
     }
+
+    #[test]
+    fn crate_context_features_from_annotations() {
+        let mut annotations = common_annotations();
+
+        // Crate a fake feature to track
+        let mut select = Select::new();
+        select.insert(
+            CargoTreeEntry {
+                features: BTreeSet::from(["unique_feature".to_owned()]),
+                deps: BTreeSet::new(),
+            },
+            // The common config
+            None,
+        );
+        annotations
+            .metadata
+            .workspace_metadata
+            .tree_metadata
+            .insert(
+                CrateId::new("common".to_owned(), Version::new(0, 1, 0)),
+                select,
+            );
+
+        let crate_annotation = &annotations.metadata.crates[&PackageId {
+            repr: "path+file://{TEMP_DIR}/common#0.1.0".to_owned(),
+        }];
+        let include_binaries = false;
+        let include_build_scripts = false;
+        let are_sources_present = false;
+
+        let context = CrateContext::new(
+            crate_annotation,
+            &annotations.metadata.packages,
+            &annotations.lockfile.crates,
+            &annotations.pairred_extras,
+            &annotations.metadata.workspace_metadata.tree_metadata,
+            include_binaries,
+            include_build_scripts,
+            are_sources_present,
+        );
+
+        let mut expected = Select::new();
+        expected.insert("unique_feature".to_owned(), None);
+
+        assert_eq!(context.common_attrs.crate_features, expected);
+    }
 }
diff --git a/crate_universe/src/context/platforms.rs b/crate_universe/src/context/platforms.rs
index ede6053..3a1656b 100644
--- a/crate_universe/src/context/platforms.rs
+++ b/crate_universe/src/context/platforms.rs
@@ -158,6 +158,7 @@
             disable_pipelining: false,
             extra_aliased_targets: BTreeMap::default(),
             alias_rule: None,
+            override_targets: BTreeMap::default(),
         };
 
         let configurations =
@@ -215,6 +216,7 @@
             disable_pipelining: false,
             extra_aliased_targets: BTreeMap::default(),
             alias_rule: None,
+            override_targets: BTreeMap::default(),
         }
     }
 
@@ -245,7 +247,7 @@
             assert_eq!(
                 configurations,
                 BTreeMap::from([
-                    (configuration, expectation,),
+                    (configuration, expectation),
                     // All known triples.
                     (
                         "aarch64-apple-darwin".to_owned(),
@@ -300,6 +302,7 @@
             disable_pipelining: false,
             extra_aliased_targets: BTreeMap::default(),
             alias_rule: None,
+            override_targets: BTreeMap::default(),
         };
 
         let configurations =
@@ -365,6 +368,7 @@
             disable_pipelining: false,
             extra_aliased_targets: BTreeMap::default(),
             alias_rule: None,
+            override_targets: BTreeMap::default(),
         };
 
         let configurations =
diff --git a/crate_universe/src/lockfile.rs b/crate_universe/src/lockfile.rs
index 6f23199..6a95b97 100644
--- a/crate_universe/src/lockfile.rs
+++ b/crate_universe/src/lockfile.rs
@@ -1,7 +1,6 @@
 //! Utility module for interacting with the cargo-bazel lockfile.
 
 use std::collections::BTreeMap;
-use std::convert::TryFrom;
 use std::ffi::OsStr;
 use std::fs;
 use std::path::Path;
@@ -94,6 +93,16 @@
         })
     }
 
+    /// A helper for generating a hash and logging it's contents.
+    fn compute_single_hash(data: &str, id: &str) -> String {
+        let mut hasher = Sha256::new();
+        hasher.update(data.as_bytes());
+        hasher.update(b"\0");
+        let hash = hasher.finalize().encode_hex::<String>();
+        tracing::debug!("{} hash: {}", id, hash);
+        hash
+    }
+
     fn compute(
         context: &Context,
         config: &Config,
@@ -109,25 +118,44 @@
 
         let mut hasher = Sha256::new();
 
-        hasher.update(cargo_bazel_version.as_bytes());
+        hasher.update(Digest::compute_single_hash(
+            cargo_bazel_version,
+            "cargo-bazel version",
+        ));
         hasher.update(b"\0");
 
-        hasher.update(serde_json::to_string(context).unwrap().as_bytes());
+        // The lockfile context (typically `cargo-bazel-lock.json`).
+        hasher.update(Digest::compute_single_hash(
+            &serde_json::to_string(context).unwrap(),
+            "lockfile context",
+        ));
         hasher.update(b"\0");
 
-        hasher.update(serde_json::to_string(config).unwrap().as_bytes());
+        // This content is generated by various attributes in Bazel rules and written to a file behind the scenes.
+        hasher.update(Digest::compute_single_hash(
+            &serde_json::to_string(config).unwrap(),
+            "workspace config",
+        ));
         hasher.update(b"\0");
 
-        hasher.update(serde_json::to_string(splicing_metadata).unwrap().as_bytes());
+        // Data collected about Cargo manifests and configs that feed into dependency generation. This file
+        // is also generated by Bazel behind the scenes based on user inputs.
+        hasher.update(Digest::compute_single_hash(
+            &serde_json::to_string(splicing_metadata).unwrap(),
+            "splicing manifest",
+        ));
         hasher.update(b"\0");
 
-        hasher.update(cargo_version.as_bytes());
+        hasher.update(Digest::compute_single_hash(cargo_version, "Cargo version"));
         hasher.update(b"\0");
 
-        hasher.update(rustc_version.as_bytes());
+        hasher.update(Digest::compute_single_hash(rustc_version, "Rustc version"));
         hasher.update(b"\0");
 
-        Self(hasher.finalize().encode_hex::<String>())
+        let hash = hasher.finalize().encode_hex::<String>();
+        tracing::debug!("Digest hash: {}", hash);
+
+        Self(hash)
     }
 
     pub(crate) fn bin_version(binary: &Path) -> Result<String> {
@@ -142,6 +170,8 @@
             .with_context(|| format!("Failed to run {} to get its version", binary.display()))?;
 
         if !output.status.success() {
+            eprintln!("{}", String::from_utf8_lossy(&output.stdout));
+            eprintln!("{}", String::from_utf8_lossy(&output.stderr));
             bail!("Failed to query cargo version")
         }
 
@@ -193,7 +223,7 @@
 
     use super::*;
 
-    use std::collections::{BTreeMap, BTreeSet};
+    use std::collections::BTreeSet;
 
     #[test]
     fn simple_digest() {
@@ -211,7 +241,7 @@
         );
 
         assert_eq!(
-            Digest("83ad667352ca5a7cb3cc60f171a65f3bf264c7c97c6d91113d4798ca1dfb8d48".to_owned()),
+            Digest("7f8d38b770a838797e24635a9030d4194210ff331f1a5b59c753f23fd197b5d8".to_owned()),
             digest,
         );
     }
@@ -256,7 +286,7 @@
         );
 
         assert_eq!(
-            Digest("40a5ede6a47639166062fffab74e5dbe229b1d2508bcf70d8dfeba04b4f4ac9a".to_owned()),
+            Digest("610cbb406b7452d32ae31c45ec82cd3b3b1fb184c3411ef613c948d88492441b".to_owned()),
             digest,
         );
     }
@@ -287,7 +317,7 @@
         );
 
         assert_eq!(
-            Digest("10a1921f3122042d6c513392992e4b3982d0ed8985fdc2dee965c466f8cb00a4".to_owned()),
+            Digest("e81dba9d36276baa8d491373fe09ef38e71e68c12f70e45b7c260ba2c48a87f5".to_owned()),
             digest,
         );
     }
@@ -336,7 +366,7 @@
         );
 
         assert_eq!(
-            Digest("9e3d58a48b375bec2cf8c783d92f5d8db67306046e652ee376f30c362c882f56".to_owned()),
+            Digest("f1b8ca07d35905bbd8bba79137ca7a02414b4ef01f28c459b78d1807ac3a8191".to_owned()),
             digest,
         );
     }
diff --git a/crate_universe/src/metadata.rs b/crate_universe/src/metadata.rs
index 39e45db..5daaa31 100644
--- a/crate_universe/src/metadata.rs
+++ b/crate_universe/src/metadata.rs
@@ -3,8 +3,9 @@
 mod dependency;
 mod metadata_annotation;
 
-use std::collections::{BTreeMap, BTreeSet};
+use std::collections::{BTreeMap, BTreeSet, HashMap};
 use std::env;
+use std::ffi::OsString;
 use std::fs;
 use std::io::BufRead;
 use std::path::{Path, PathBuf};
@@ -16,11 +17,14 @@
 use cargo_lock::Lockfile as CargoLockfile;
 use cargo_metadata::{Metadata as CargoMetadata, MetadataCommand};
 use semver::Version;
+use serde::{Deserialize, Serialize};
 use tracing::debug;
+use url::Url;
 
 use crate::config::CrateId;
 use crate::lockfile::Digest;
-use crate::select::Select;
+use crate::select::{Select, SelectableScalar};
+use crate::utils::symlink::symlink;
 use crate::utils::target_triple::TargetTriple;
 
 pub(crate) use self::dependency::*;
@@ -43,11 +47,13 @@
 
 impl Generator {
     pub(crate) fn new() -> Self {
+        let rustc_bin = PathBuf::from(env::var("RUSTC").unwrap_or_else(|_| "rustc".to_string()));
         Generator {
-            cargo_bin: Cargo::new(PathBuf::from(
-                env::var("CARGO").unwrap_or_else(|_| "cargo".to_string()),
-            )),
-            rustc_bin: PathBuf::from(env::var("RUSTC").unwrap_or_else(|_| "rustc".to_string())),
+            cargo_bin: Cargo::new(
+                PathBuf::from(env::var("CARGO").unwrap_or_else(|_| "cargo".to_string())),
+                rustc_bin.clone(),
+            ),
+            rustc_bin,
         }
     }
 
@@ -76,17 +82,9 @@
             cargo_lock::Lockfile::load(lock_path)?
         };
 
-        let mut other_options = vec!["--locked".to_owned()];
-        if self.cargo_bin.is_nightly()? {
-            other_options.push("-Zbindeps".to_owned());
-        }
-
         let metadata = self
             .cargo_bin
-            .metadata_command()?
-            .current_dir(manifest_dir)
-            .manifest_path(manifest_path.as_ref())
-            .other_options(other_options)
+            .metadata_command_with_options(manifest_path.as_ref(), vec!["--locked".to_owned()])?
             .exec()?;
 
         Ok((metadata, lockfile))
@@ -99,17 +97,27 @@
 #[derive(Debug, Clone)]
 pub(crate) struct Cargo {
     path: PathBuf,
+    rustc_path: PathBuf,
     full_version: Arc<Mutex<Option<String>>>,
+    cargo_home: Option<PathBuf>,
 }
 
 impl Cargo {
-    pub(crate) fn new(path: PathBuf) -> Cargo {
+    pub(crate) fn new(path: PathBuf, rustc: PathBuf) -> Cargo {
         Cargo {
             path,
+            rustc_path: rustc,
             full_version: Arc::new(Mutex::new(None)),
+            cargo_home: None,
         }
     }
 
+    #[cfg(test)]
+    pub(crate) fn with_cargo_home(mut self, path: PathBuf) -> Cargo {
+        self.cargo_home = Some(path);
+        self
+    }
+
     /// Returns a new `Command` for running this cargo.
     pub(crate) fn command(&self) -> Result<Command> {
         let mut command = Command::new(&self.path);
@@ -121,12 +129,32 @@
     }
 
     /// Returns a new `MetadataCommand` using this cargo.
-    pub(crate) fn metadata_command(&self) -> Result<MetadataCommand> {
+    /// `manifest_path`, `current_dir`, and `other_options` should not be called on the resturned MetadataCommand - instead pass them as the relevant args.
+    pub(crate) fn metadata_command_with_options(
+        &self,
+        manifest_path: &Path,
+        other_options: Vec<String>,
+    ) -> Result<MetadataCommand> {
         let mut command = MetadataCommand::new();
         command.cargo_path(&self.path);
         for (k, v) in self.env()? {
             command.env(k, v);
         }
+
+        command.manifest_path(manifest_path);
+        // Cargo detects config files based on `pwd` when running so
+        // to ensure user provided Cargo config files are used, it's
+        // critical to set the working directory to the manifest dir.
+        let manifest_dir = manifest_path
+            .parent()
+            .ok_or_else(|| anyhow::anyhow!("manifest_path {:?} must have parent", manifest_path))?;
+        command.current_dir(manifest_dir);
+
+        let mut other_options = other_options;
+        if self.is_nightly()? {
+            other_options.push("-Zbindeps".to_owned());
+        }
+        command.other_options(other_options);
         Ok(command)
     }
 
@@ -169,20 +197,27 @@
         let version_str = full_version.split(' ').nth(1);
         if let Some(version_str) = version_str {
             let version = Version::parse(version_str).context("Failed to parse cargo version")?;
-            return Ok(version.major >= 1 && version.minor >= 78);
+            return Ok(version.major >= 1 && version.minor >= 77);
         }
         bail!("Couldn't parse cargo version");
     }
 
-    fn env(&self) -> Result<BTreeMap<String, String>> {
+    fn env(&self) -> Result<BTreeMap<String, OsString>> {
         let mut map = BTreeMap::new();
 
+        map.insert("RUSTC".into(), self.rustc_path.as_os_str().to_owned());
+
         if self.use_sparse_registries_for_crates_io()? {
             map.insert(
                 "CARGO_REGISTRIES_CRATES_IO_PROTOCOL".into(),
                 "sparse".into(),
             );
         }
+
+        if let Some(cargo_home) = &self.cargo_home {
+            map.insert("CARGO_HOME".into(), cargo_home.as_os_str().to_owned());
+        }
+
         Ok(map)
     }
 }
@@ -248,12 +283,7 @@
     }
 
     /// Calls `cargo update` with arguments specific to the state of the current variant.
-    pub(crate) fn update(
-        &self,
-        manifest: &Path,
-        cargo_bin: &Cargo,
-        rustc_bin: &Path,
-    ) -> Result<()> {
+    pub(crate) fn update(&self, manifest: &Path, cargo_bin: &Cargo) -> Result<()> {
         let manifest_dir = manifest.parent().unwrap();
 
         // Simply invoke `cargo update`
@@ -267,7 +297,6 @@
             .arg("--manifest-path")
             .arg(manifest)
             .args(self.get_update_args())
-            .env("RUSTC", rustc_bin)
             .output()
             .with_context(|| {
                 format!(
@@ -287,19 +316,13 @@
 }
 
 pub(crate) struct LockGenerator {
-    /// The path to a `cargo` binary
+    /// Interface to cargo.
     cargo_bin: Cargo,
-
-    /// The path to a `rustc` binary
-    rustc_bin: PathBuf,
 }
 
 impl LockGenerator {
-    pub(crate) fn new(cargo_bin: Cargo, rustc_bin: PathBuf) -> Self {
-        Self {
-            cargo_bin,
-            rustc_bin,
-        }
+    pub(crate) fn new(cargo_bin: Cargo) -> Self {
+        Self { cargo_bin }
     }
 
     #[tracing::instrument(name = "LockGenerator::generate", skip_all)]
@@ -330,7 +353,7 @@
             fs::copy(lock, &generated_lockfile_path)?;
 
             if let Some(request) = update_request {
-                request.update(manifest_path, &self.cargo_bin, &self.rustc_bin)?;
+                request.update(manifest_path, &self.cargo_bin)?;
             }
 
             // Ensure the Cargo cache is up to date to simulate the behavior
@@ -343,10 +366,8 @@
                 // critical to set the working directory to the manifest dir.
                 .current_dir(manifest_dir)
                 .arg("fetch")
-                .arg("--locked")
                 .arg("--manifest-path")
                 .arg(manifest_path)
-                .env("RUSTC", &self.rustc_bin)
                 .output()
                 .context(format!(
                     "Error running cargo to fetch crates '{}'",
@@ -374,7 +395,6 @@
                 .arg("generate-lockfile")
                 .arg("--manifest-path")
                 .arg(manifest_path)
-                .env("RUSTC", &self.rustc_bin)
                 .output()
                 .context(format!(
                     "Error running cargo to generate lockfile '{}'",
@@ -454,36 +474,67 @@
     }
 }
 
-/// A generate which computes per-platform feature sets.
-pub(crate) struct FeatureGenerator {
-    /// The path to a `cargo` binary
-    cargo_bin: Cargo,
+/// Feature resolver info about a given crate.
+#[derive(Debug, Default, Clone, Eq, PartialEq, Serialize, Deserialize)]
+pub(crate) struct CargoTreeEntry {
+    /// The set of features active on a given crate.
+    #[serde(default, skip_serializing_if = "BTreeSet::is_empty")]
+    pub features: BTreeSet<String>,
 
-    /// The path to a `rustc` binary
-    rustc_bin: PathBuf,
+    /// The dependencies of a given crate based on feature resolution.
+    #[serde(default, skip_serializing_if = "BTreeSet::is_empty")]
+    pub deps: BTreeSet<CrateId>,
 }
 
-impl FeatureGenerator {
-    pub(crate) fn new(cargo_bin: Cargo, rustc_bin: PathBuf) -> Self {
+impl CargoTreeEntry {
+    pub fn new() -> Self {
         Self {
-            cargo_bin,
-            rustc_bin,
+            features: BTreeSet::new(),
+            deps: BTreeSet::new(),
         }
     }
 
+    pub fn is_empty(&self) -> bool {
+        self.features.is_empty() && self.deps.is_empty()
+    }
+}
+
+impl SelectableScalar for CargoTreeEntry {}
+
+/// Feature and dependency metadata generated from [TreeResolver].
+pub(crate) type TreeResolverMetadata = BTreeMap<CrateId, Select<CargoTreeEntry>>;
+
+/// Generates metadata about a Cargo workspace tree which supplements the inaccuracies in
+/// standard [Cargo metadata](https://doc.rust-lang.org/cargo/commands/cargo-metadata.html)
+/// due lack of [Feature resolver 2](https://doc.rust-lang.org/cargo/reference/resolver.html#feature-resolver-version-2)
+/// support. This generator can be removed if the following is resolved:
+/// <https://github.com/rust-lang/cargo/issues/9863>
+pub(crate) struct TreeResolver {
+    /// The path to a `cargo` binary
+    cargo_bin: Cargo,
+}
+
+impl TreeResolver {
+    pub(crate) fn new(cargo_bin: Cargo) -> Self {
+        Self { cargo_bin }
+    }
+
     /// Computes the set of enabled features for each target triplet for each crate.
-    #[tracing::instrument(name = "FeatureGenerator::generate", skip_all)]
+    #[tracing::instrument(name = "TreeResolver::generate", skip_all)]
     pub(crate) fn generate(
         &self,
-        manifest_path: &Path,
+        pristine_manifest_path: &Path,
         target_triples: &BTreeSet<TargetTriple>,
-    ) -> Result<BTreeMap<CrateId, Select<BTreeSet<String>>>> {
+    ) -> Result<TreeResolverMetadata> {
         debug!(
             "Generating features for manifest {}",
-            manifest_path.display()
+            pristine_manifest_path.display()
         );
 
-        let manifest_dir = manifest_path.parent().unwrap();
+        let (manifest_path_with_transitive_proc_macros, tempdir) = self
+            .copy_project_with_explicit_deps_on_all_transitive_proc_macros(pristine_manifest_path)
+            .context("Failed to copy project with proc macro deps made direct")?;
+
         let mut target_triple_to_child = BTreeMap::new();
         debug!("Spawning processes for {:?}", target_triples);
         for target_triple in target_triples {
@@ -495,19 +546,19 @@
             let output = self
                 .cargo_bin
                 .command()?
-                .current_dir(manifest_dir)
+                .current_dir(tempdir.path())
                 .arg("tree")
-                .arg("--locked")
                 .arg("--manifest-path")
-                .arg(manifest_path)
-                .arg("--prefix=none")
+                .arg(&manifest_path_with_transitive_proc_macros)
+                .arg("--edges")
+                .arg("normal,build,dev")
+                .arg("--prefix=depth")
                 // https://doc.rust-lang.org/cargo/commands/cargo-tree.html#tree-formatting-options
                 .arg("--format=|{p}|{f}|")
                 .arg("--color=never")
                 .arg("--workspace")
                 .arg("--target")
                 .arg(target_triple.to_cargo())
-                .env("RUSTC", &self.rustc_bin)
                 .stdout(std::process::Stdio::piped())
                 .stderr(std::process::Stdio::piped())
                 .spawn()
@@ -515,13 +566,13 @@
                     format!(
                         "Error spawning cargo in child process to compute features for target '{}', manifest path '{}'",
                         target_triple,
-                        manifest_path.display()
+                        manifest_path_with_transitive_proc_macros.display()
                     )
                 })?;
             target_triple_to_child.insert(target_triple, output);
         }
-        let mut crate_features =
-            BTreeMap::<CrateId, BTreeMap<TargetTriple, BTreeSet<String>>>::new();
+        let mut metadata: BTreeMap<CrateId, BTreeMap<TargetTriple, CargoTreeEntry>> =
+            BTreeMap::new();
         for (target_triple, child) in target_triple_to_child.into_iter() {
             let output = child
                 .wait_with_output()
@@ -529,7 +580,7 @@
                     format!(
                         "Error running cargo in child process to compute features for target '{}', manifest path '{}'",
                         target_triple,
-                        manifest_path.display()
+                        manifest_path_with_transitive_proc_macros.display()
                     )
                 })?;
             if !output.status.success() {
@@ -538,62 +589,360 @@
                 bail!(format!("Failed to run cargo tree: {}", output.status))
             }
             debug!("Process complete for {}", target_triple);
-            for (crate_id, features) in
+            for (crate_id, tree_data) in
                 parse_features_from_cargo_tree_output(output.stdout.lines())?
             {
-                debug!("\tFor {} features were: {:?}", crate_id, features);
-                crate_features
-                    .entry(crate_id)
+                debug!(
+                    "\tFor {}\n\t\tfeatures: {:?}\n\t\tdeps: {:?}",
+                    crate_id, tree_data.features, tree_data.deps
+                );
+                metadata
+                    .entry(crate_id.clone())
                     .or_default()
-                    .insert(target_triple.clone(), features);
+                    .insert(target_triple.clone(), tree_data);
             }
         }
-        let mut result = BTreeMap::<CrateId, Select<BTreeSet<String>>>::new();
-        for (crate_id, features) in crate_features.into_iter() {
-            let common = features
-                .iter()
-                .fold(
-                    None,
-                    |common: Option<BTreeSet<String>>, (_, features)| match common {
-                        Some(common) => Some(common.intersection(features).cloned().collect()),
-                        None => Some(features.clone()),
-                    },
-                )
-                .unwrap_or_default();
-            let mut select: Select<BTreeSet<String>> = Select::default();
-            for (target_triple, fs) in features {
-                if fs != common {
-                    for f in fs {
-                        select.insert(f, Some(target_triple.to_bazel()));
-                    }
+        let mut result = TreeResolverMetadata::new();
+        for (crate_id, tree_data) in metadata.into_iter() {
+            let common = CargoTreeEntry {
+                features: tree_data
+                    .iter()
+                    .fold(
+                        None,
+                        |common: Option<BTreeSet<String>>, (_, data)| match common {
+                            Some(common) => {
+                                Some(common.intersection(&data.features).cloned().collect())
+                            }
+                            None => Some(data.features.clone()),
+                        },
+                    )
+                    .unwrap_or_default(),
+                deps: tree_data
+                    .iter()
+                    .fold(
+                        None,
+                        |common: Option<BTreeSet<CrateId>>, (_, data)| match common {
+                            Some(common) => {
+                                Some(common.intersection(&data.deps).cloned().collect())
+                            }
+                            None => Some(data.deps.clone()),
+                        },
+                    )
+                    .unwrap_or_default(),
+            };
+            let mut select: Select<CargoTreeEntry> = Select::default();
+            for (target_triple, data) in tree_data {
+                let mut entry = CargoTreeEntry::new();
+                entry.features.extend(
+                    data.features
+                        .into_iter()
+                        .filter(|f| !common.features.contains(f)),
+                );
+                entry
+                    .deps
+                    .extend(data.deps.into_iter().filter(|d| !common.deps.contains(d)));
+                if !entry.is_empty() {
+                    select.insert(entry, Some(target_triple.to_bazel()));
                 }
             }
-            for f in common {
-                select.insert(f, None);
+            if !common.is_empty() {
+                select.insert(common, None);
             }
             result.insert(crate_id, select);
         }
         Ok(result)
     }
+
+    // Artificially inject all proc macros as dependency roots.
+    // Proc macros are built in the exec rather than target configuration.
+    // If we do cross-compilation, these will be different, and it will be important that we have resolved features and optional dependencies for the exec platform.
+    // If we don't treat proc macros as roots for the purposes of resolving, we may end up with incorrect platform-specific features.
+    //
+    // Example:
+    // If crate foo only uses a proc macro Linux,
+    // and that proc-macro depends on syn and requires the feature extra-traits,
+    // when we resolve on macOS we'll see we don't need the extra-traits feature of syn because the proc macro isn't used.
+    // But if we're cross-compiling for Linux from macOS, we'll build a syn, but because we're building it for macOS (because proc macros are exec-cfg dependencies),
+    // we'll build syn but _without_ the extra-traits feature (because our resolve told us it was Linux only).
+    //
+    // By artificially injecting all proc macros as root dependencies,
+    // it means we are forced to resolve the dependencies and features for those proc-macros on all platforms we care about,
+    // even if they wouldn't be used in some platform when cfg == exec.
+    //
+    // This is tested by the "keyring" example in examples/musl_cross_compiling - the keyring crate uses proc-macros only on Linux,
+    // and if we don't have this fake root injection, cross-compiling from Darwin to Linux won't work because features don't get correctly resolved for the exec=darwin case.
+    fn copy_project_with_explicit_deps_on_all_transitive_proc_macros(
+        &self,
+        pristine_manifest_path: &Path,
+    ) -> Result<(PathBuf, tempfile::TempDir)> {
+        let pristine_root = pristine_manifest_path.parent().unwrap();
+        let working_directory = tempfile::tempdir().context("Failed to make tempdir")?;
+        for file in std::fs::read_dir(pristine_root).context("Failed to read dir")? {
+            let source_path = file?.path();
+            let file_name = source_path.file_name().unwrap();
+            if file_name != "Cargo.toml" && file_name != "Cargo.lock" {
+                let destination = working_directory.path().join(file_name);
+                symlink(&source_path, &destination).with_context(|| {
+                    format!(
+                        "Failed to create symlink {:?} pointing at {:?}",
+                        destination, source_path
+                    )
+                })?;
+            }
+        }
+        std::fs::copy(
+            pristine_root.join("Cargo.lock"),
+            working_directory.path().join("Cargo.lock"),
+        )
+        .with_context(|| {
+            format!(
+                "Failed to copy Cargo.lock from {:?} to {:?}",
+                pristine_root,
+                working_directory.path()
+            )
+        })?;
+
+        let cargo_metadata = self
+            .cargo_bin
+            .metadata_command_with_options(pristine_manifest_path, vec!["--locked".to_owned()])?
+            .manifest_path(pristine_manifest_path)
+            .exec()
+            .context("Failed to run cargo metadata to list transitive proc macros")?;
+        let proc_macros = cargo_metadata
+            .packages
+            .iter()
+            .filter(|p| {
+                p.targets
+                    .iter()
+                    .any(|t| t.kind.iter().any(|k| k == "proc-macro"))
+            })
+            // Filter out any in-workspace proc macros, populate dependency details for non-in-workspace proc macros.
+            .filter_map(|pm| {
+                if let Some(source) = pm.source.as_ref() {
+                    let mut detail = DependencyDetailWithOrd(cargo_toml::DependencyDetail {
+                        package: Some(pm.name.clone()),
+                        // Don't forcibly enable default features - if some other dependency enables them, they will still be enabled.
+                        default_features: false,
+                        ..cargo_toml::DependencyDetail::default()
+                    });
+
+                    let source = match Source::parse(&source.repr, pm.version.to_string()) {
+                        Ok(source) => source,
+                        Err(err) => {
+                            return Some(Err(err));
+                        }
+                    };
+                    source.populate_details(&mut detail.0);
+
+                    Some(Ok((pm.name.clone(), detail)))
+                } else {
+                    None
+                }
+            })
+            .collect::<Result<BTreeSet<_>>>()?;
+
+        let mut manifest =
+            cargo_toml::Manifest::from_path(pristine_manifest_path).with_context(|| {
+                format!(
+                    "Failed to parse Cargo.toml file at {:?}",
+                    pristine_manifest_path
+                )
+            })?;
+
+        // To add dependencies to a virtual workspace, we need to add them to a package inside the workspace,
+        // we can't just add them to the workspace directly.
+        if !proc_macros.is_empty() && manifest.package.is_none() {
+            if let Some(ref mut workspace) = &mut manifest.workspace {
+                if !workspace.members.contains(&".".to_owned()) {
+                    workspace.members.push(".".to_owned());
+                }
+                manifest.package = Some(cargo_toml::Package::new(
+                    "rules_rust_fake_proc_macro_root",
+                    "0.0.0",
+                ));
+            }
+            if manifest.lib.is_none() && manifest.bin.is_empty() {
+                manifest.bin.push(cargo_toml::Product {
+                    name: Some("rules_rust_fake_proc_macro_root_bin".to_owned()),
+                    path: Some("/dev/null".to_owned()),
+                    ..cargo_toml::Product::default()
+                })
+            }
+        }
+
+        let mut count_map: HashMap<_, u64> = HashMap::new();
+        for (dep_name, detail) in proc_macros {
+            let count = count_map.entry(dep_name.clone()).or_default();
+            manifest.dependencies.insert(
+                format!("rules_rust_fake_proc_macro_root_{}_{}", dep_name, count),
+                cargo_toml::Dependency::Detailed(Box::new(detail.0)),
+            );
+            *count += 1;
+        }
+        let manifest_path_with_transitive_proc_macros = working_directory.path().join("Cargo.toml");
+        crate::splicing::write_manifest(&manifest_path_with_transitive_proc_macros, &manifest)?;
+        Ok((manifest_path_with_transitive_proc_macros, working_directory))
+    }
+}
+
+// cargo_toml::DependencyDetail doesn't implement PartialOrd/Ord so can't be put in a sorted collection.
+// Wrap it so we can sort things for stable orderings.
+#[derive(Debug, PartialEq)]
+struct DependencyDetailWithOrd(cargo_toml::DependencyDetail);
+
+impl PartialOrd for DependencyDetailWithOrd {
+    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
+        Some(self.cmp(other))
+    }
+}
+
+impl Ord for DependencyDetailWithOrd {
+    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
+        let cargo_toml::DependencyDetail {
+            version,
+            registry,
+            registry_index,
+            path,
+            inherited,
+            git,
+            branch,
+            tag,
+            rev,
+            features,
+            optional,
+            default_features,
+            package,
+            unstable: _,
+        } = &self.0;
+
+        version
+            .cmp(&other.0.version)
+            .then(registry.cmp(&other.0.registry))
+            .then(registry_index.cmp(&other.0.registry_index))
+            .then(path.cmp(&other.0.path))
+            .then(inherited.cmp(&other.0.inherited))
+            .then(git.cmp(&other.0.git))
+            .then(branch.cmp(&other.0.branch))
+            .then(tag.cmp(&other.0.tag))
+            .then(rev.cmp(&other.0.rev))
+            .then(features.cmp(&other.0.features))
+            .then(optional.cmp(&other.0.optional))
+            .then(default_features.cmp(&other.0.default_features))
+            .then(package.cmp(&other.0.package))
+    }
+}
+
+impl Eq for DependencyDetailWithOrd {}
+
+#[derive(Debug, PartialEq, Eq)]
+enum Source {
+    Registry {
+        registry: String,
+        version: String,
+    },
+    Git {
+        git: String,
+        rev: Option<String>,
+        branch: Option<String>,
+        tag: Option<String>,
+    },
+}
+
+impl Source {
+    fn parse(string: &str, version: String) -> Result<Source> {
+        let url: Url = Url::parse(string)?;
+        let original_scheme = url.scheme().to_owned();
+        let scheme_parts: Vec<_> = original_scheme.split('+').collect();
+        match &scheme_parts[..] {
+            // e.g. registry+https://github.com/rust-lang/crates.io-index
+            ["registry", scheme] => {
+                let new_url = set_url_scheme_despite_the_url_crate_not_wanting_us_to(&url, scheme)?;
+                Ok(Self::Registry {
+                    registry: new_url,
+                    version,
+                })
+            }
+            // e.g. git+https://github.com/serde-rs/serde.git?rev=9b868ef831c95f50dd4bde51a7eb52e3b9ee265a#9b868ef831c95f50dd4bde51a7eb52e3b9ee265a
+            ["git", scheme] => {
+                let mut query: HashMap<String, String> = url
+                    .query_pairs()
+                    .map(|(k, v)| (k.into_owned(), v.into_owned()))
+                    .collect();
+
+                let mut url = url;
+                url.set_fragment(None);
+                url.set_query(None);
+                let new_url = set_url_scheme_despite_the_url_crate_not_wanting_us_to(&url, scheme)?;
+
+                Ok(Self::Git {
+                    git: new_url,
+                    rev: query.remove("rev"),
+                    branch: query.remove("branch"),
+                    tag: query.remove("tag"),
+                })
+            }
+            _ => {
+                anyhow::bail!(
+                    "Couldn't parse source {:?}: Didn't recognise scheme",
+                    string
+                );
+            }
+        }
+    }
+
+    fn populate_details(self, details: &mut cargo_toml::DependencyDetail) {
+        match self {
+            Self::Registry { registry, version } => {
+                details.registry_index = Some(registry);
+                details.version = Some(version);
+            }
+            Self::Git {
+                git,
+                rev,
+                branch,
+                tag,
+            } => {
+                details.git = Some(git);
+                details.rev = rev;
+                details.branch = branch;
+                details.tag = tag;
+            }
+        }
+    }
+}
+
+fn set_url_scheme_despite_the_url_crate_not_wanting_us_to(
+    url: &Url,
+    new_scheme: &str,
+) -> Result<String> {
+    let (_old_scheme, new_url_without_scheme) = url.as_str().split_once(':').ok_or_else(|| {
+        anyhow::anyhow!(
+            "Cannot set schme of URL which doesn't contain \":\": {:?}",
+            url
+        )
+    })?;
+    Ok(format!("{new_scheme}:{new_url_without_scheme}"))
 }
 
 /// Parses the output of `cargo tree --format=|{p}|{f}|`. Other flags may be
 /// passed to `cargo tree` as well, but this format is critical.
 fn parse_features_from_cargo_tree_output<I, S, E>(
     lines: I,
-) -> Result<BTreeMap<CrateId, BTreeSet<String>>>
+) -> Result<BTreeMap<CrateId, CargoTreeEntry>>
 where
     I: Iterator<Item = std::result::Result<S, E>>,
     S: AsRef<str>,
     E: std::error::Error + Sync + Send + 'static,
 {
-    let mut crate_features = BTreeMap::<CrateId, BTreeSet<String>>::new();
+    let mut tree_data = BTreeMap::<CrateId, CargoTreeEntry>::new();
+    let mut parents: Vec<CrateId> = Vec::new();
     for line in lines {
         let line = line?;
         let line = line.as_ref();
         if line.is_empty() {
             continue;
         }
+
         let parts = line.split('|').collect::<Vec<_>>();
         if parts.len() != 4 {
             bail!("Unexpected line '{}'", line);
@@ -618,17 +967,61 @@
         })?;
         let version = Version::parse(version_str).context("Failed to parse version")?;
         let crate_id = CrateId::new(crate_id_parts[0].to_owned(), version);
+
+        // Update bookkeeping for dependency tracking.
+        let depth = parts[0]
+            .parse::<usize>()
+            .with_context(|| format!("Unexpected numeric value from cargo tree: {:?}", parts))?;
+        if (depth + 1) <= parents.len() {
+            // Drain parents until we get down to the right depth
+            let range = parents.len() - (depth + 1);
+            for _ in 0..range {
+                parents.pop();
+            }
+
+            // If the current parent does not have the same Crate ID, then
+            // it's likely we have moved to a different crate. This can happen
+            // in the following case
+            // ```
+            // ├── proc-macro2 v1.0.81
+            // │   └── unicode-ident v1.0.12
+            // ├── quote v1.0.36
+            // │   └── proc-macro2 v1.0.81 (*)
+            // ```
+            if parents.last() != Some(&crate_id) {
+                parents.pop();
+                parents.push(crate_id.clone());
+            }
+        } else {
+            // Start tracking the current crate as the new parent for any
+            // crates that represent a new depth in the dep tree.
+            parents.push(crate_id.clone());
+        }
+
+        // Attribute any dependency that is not the root to it's parent.
+        if depth > 0 {
+            // Access the last item in the list of parents.
+            if let Some(parent) = parents.iter().rev().nth(1) {
+                tree_data
+                    .entry(parent.clone())
+                    .or_default()
+                    .deps
+                    .insert(crate_id.clone());
+            }
+        }
+
         let mut features = if parts[2].is_empty() {
             BTreeSet::new()
         } else {
             parts[2].split(',').map(str::to_owned).collect()
         };
-        crate_features
+        tree_data
             .entry(crate_id)
             .or_default()
+            .features
             .append(&mut features);
     }
-    Ok(crate_features)
+    Ok(tree_data)
 }
 
 /// A helper function for writing Cargo metadata to a file.
@@ -730,57 +1123,332 @@
 
     #[test]
     fn parse_features_from_cargo_tree_output_prefix_none() {
+        let autocfg_id = CrateId {
+            name: "autocfg".to_owned(),
+            version: Version::new(1, 2, 0),
+        };
+        let chrono_id = CrateId {
+            name: "chrono".to_owned(),
+            version: Version::new(0, 4, 24),
+        };
+        let core_foundation_sys_id = CrateId {
+            name: "core-foundation-sys".to_owned(),
+            version: Version::new(0, 8, 6),
+        };
+        let cpufeatures_id = CrateId {
+            name: "cpufeatures".to_owned(),
+            version: Version::new(0, 2, 7),
+        };
+        let iana_time_zone_id = CrateId {
+            name: "iana-time-zone".to_owned(),
+            version: Version::new(0, 1, 60),
+        };
+        let libc_id = CrateId {
+            name: "libc".to_owned(),
+            version: Version::new(0, 2, 153),
+        };
+        let num_integer_id = CrateId {
+            name: "num-integer".to_owned(),
+            version: Version::new(0, 1, 46),
+        };
+        let num_traits_id = CrateId {
+            name: "num-traits".to_owned(),
+            version: Version::new(0, 2, 18),
+        };
+        let proc_macro2_id = CrateId {
+            name: "proc-macro2".to_owned(),
+            version: Version::new(1, 0, 81),
+        };
+        let quote_id = CrateId {
+            name: "quote".to_owned(),
+            version: Version::new(1, 0, 36),
+        };
+        let serde_derive_id = CrateId {
+            name: "serde_derive".to_owned(),
+            version: Version::new(1, 0, 152),
+        };
+        let syn_id = CrateId {
+            name: "syn".to_owned(),
+            version: Version::new(1, 0, 109),
+        };
+        let time_id = CrateId {
+            name: "time".to_owned(),
+            version: Version::new(0, 1, 45),
+        };
+        let tree_data_id = CrateId {
+            name: "tree-data".to_owned(),
+            version: Version::new(0, 1, 0),
+        };
+        let unicode_ident_id = CrateId {
+            name: "unicode-ident".to_owned(),
+            version: Version::new(1, 0, 12),
+        };
+
+        // |tree-data v0.1.0 (/rules_rust/crate_universe/test_data/metadata/tree_data)||
+        // ├── |chrono v0.4.24|clock,default,iana-time-zone,js-sys,oldtime,std,time,wasm-bindgen,wasmbind,winapi|
+        // │   ├── |iana-time-zone v0.1.60|fallback|
+        // │   │   └── |core-foundation-sys v0.8.6|default,link|
+        // │   ├── |num-integer v0.1.46||
+        // │   │   └── |num-traits v0.2.18|i128|
+        // │   │       [build-dependencies]
+        // │   │       └── |autocfg v1.2.0||
+        // │   ├── |num-traits v0.2.18|i128| (*)
+        // │   └── |time v0.1.45||
+        // │       └── |libc v0.2.153|default,std|
+        // ├── |cpufeatures v0.2.7||
+        // │   └── |libc v0.2.153|default,std|
+        // └── |serde_derive v1.0.152 (proc-macro)|default|
+        //     ├── |proc-macro2 v1.0.81|default,proc-macro|
+        //     │   └── |unicode-ident v1.0.12||
+        //     ├── |quote v1.0.36|default,proc-macro|
+        //     │   └── |proc-macro2 v1.0.81|default,proc-macro| (*)
+        //     └── |syn v1.0.109|clone-impls,default,derive,parsing,printing,proc-macro,quote|
+        //         ├── |proc-macro2 v1.0.81|default,proc-macro| (*)
+        //         ├── |quote v1.0.36|default,proc-macro| (*)
+        //         └── |unicode-ident v1.0.12||
+        let output = parse_features_from_cargo_tree_output(
+            vec![
+                Ok::<&str, std::io::Error>(""), // Blank lines are ignored.
+                Ok("0|tree-data v0.1.0 (/rules_rust/crate_universe/test_data/metadata/tree_data)||"),
+                Ok("1|chrono v0.4.24|clock,default,iana-time-zone,js-sys,oldtime,std,time,wasm-bindgen,wasmbind,winapi|"),
+                Ok("2|iana-time-zone v0.1.60|fallback|"),
+                Ok("3|core-foundation-sys v0.8.6|default,link|"),
+                Ok("2|num-integer v0.1.46||"),
+                Ok("3|num-traits v0.2.18|i128|"),
+                Ok("4|autocfg v1.2.0||"),
+                Ok("2|num-traits v0.2.18|i128| (*)"),
+                Ok("2|time v0.1.45||"),
+                Ok("3|libc v0.2.153|default,std|"),
+                Ok("1|cpufeatures v0.2.7||"),
+                Ok("2|libc v0.2.153|default,std|"),
+                Ok("1|serde_derive v1.0.152 (proc-macro)|default|"),
+                Ok("2|proc-macro2 v1.0.81|default,proc-macro|"),
+                Ok("3|unicode-ident v1.0.12||"),
+                Ok("2|quote v1.0.36|default,proc-macro|"),
+                Ok("3|proc-macro2 v1.0.81|default,proc-macro| (*)"),
+                Ok("2|syn v1.0.109|clone-impls,default,derive,parsing,printing,proc-macro,quote|"),
+                Ok("3|proc-macro2 v1.0.81|default,proc-macro| (*)"),
+                Ok("3|quote v1.0.36|default,proc-macro| (*)"),
+                Ok("3|unicode-ident v1.0.12||"),
+            ]
+            .into_iter()
+        )
+        .unwrap();
         assert_eq!(
-            parse_features_from_cargo_tree_output(
-                vec![
-                    Ok::<&str, std::io::Error>(""), // Blank lines are ignored.
-                    Ok("|multi_cfg_dep v0.1.0 (/private/tmp/ct)||"),
-                    Ok("|chrono v0.4.24|default,std|"),
-                    Ok("|cpufeatures v0.2.1||"),
-                    Ok("|libc v0.2.117|default,std|"),
-                    Ok("|serde_derive v1.0.152 (proc-macro) (*)||"),
-                    Ok("|chrono v0.4.24|default,std,serde|"),
-                ]
-                .into_iter()
-            )
-            .unwrap(),
             BTreeMap::from([
                 (
-                    CrateId {
-                        name: "multi_cfg_dep".to_owned(),
-                        version: Version::new(0, 1, 0),
+                    autocfg_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::new(),
                     },
-                    BTreeSet::from([])
                 ),
                 (
-                    CrateId {
-                        name: "cpufeatures".to_owned(),
-                        version: Version::new(0, 2, 1),
-                    },
-                    BTreeSet::from([])
+                    chrono_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from([
+                            "clock".to_owned(),
+                            "default".to_owned(),
+                            "iana-time-zone".to_owned(),
+                            "js-sys".to_owned(),
+                            "oldtime".to_owned(),
+                            "std".to_owned(),
+                            "time".to_owned(),
+                            "wasm-bindgen".to_owned(),
+                            "wasmbind".to_owned(),
+                            "winapi".to_owned(),
+                        ]),
+                        deps: BTreeSet::from([
+                            iana_time_zone_id.clone(),
+                            num_integer_id.clone(),
+                            num_traits_id.clone(),
+                            time_id.clone(),
+                        ]),
+                    }
                 ),
                 (
-                    CrateId {
-                        name: "libc".to_owned(),
-                        version: Version::new(0, 2, 117),
-                    },
-                    BTreeSet::from(["default".to_owned(), "std".to_owned()])
+                    core_foundation_sys_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["default".to_owned(), "link".to_owned()]),
+                        deps: BTreeSet::new(),
+                    }
                 ),
                 (
-                    CrateId {
-                        name: "serde_derive".to_owned(),
-                        version: Version::new(1, 0, 152),
+                    cpufeatures_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::from([libc_id.clone()]),
                     },
-                    BTreeSet::from([])
                 ),
                 (
-                    CrateId {
-                        name: "chrono".to_owned(),
-                        version: Version::new(0, 4, 24),
-                    },
-                    BTreeSet::from(["default".to_owned(), "std".to_owned(), "serde".to_owned()])
+                    iana_time_zone_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["fallback".to_owned()]),
+                        deps: BTreeSet::from([core_foundation_sys_id]),
+                    }
                 ),
-            ])
+                (
+                    libc_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["default".to_owned(), "std".to_owned()]),
+                        deps: BTreeSet::new(),
+                    }
+                ),
+                (
+                    num_integer_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::from([num_traits_id.clone()]),
+                    },
+                ),
+                (
+                    num_traits_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["i128".to_owned()]),
+                        deps: BTreeSet::from([autocfg_id]),
+                    }
+                ),
+                (
+                    proc_macro2_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["default".to_owned(), "proc-macro".to_owned()]),
+                        deps: BTreeSet::from([unicode_ident_id.clone()])
+                    }
+                ),
+                (
+                    quote_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["default".to_owned(), "proc-macro".to_owned()]),
+                        deps: BTreeSet::from([proc_macro2_id.clone()]),
+                    }
+                ),
+                (
+                    serde_derive_id.clone(),
+                    CargoTreeEntry {
+                        features: BTreeSet::from(["default".to_owned()]),
+                        deps: BTreeSet::from([
+                            proc_macro2_id.clone(),
+                            quote_id.clone(),
+                            syn_id.clone()
+                        ]),
+                    }
+                ),
+                (
+                    syn_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::from([
+                            "clone-impls".to_owned(),
+                            "default".to_owned(),
+                            "derive".to_owned(),
+                            "parsing".to_owned(),
+                            "printing".to_owned(),
+                            "proc-macro".to_owned(),
+                            "quote".to_owned(),
+                        ]),
+                        deps: BTreeSet::from([proc_macro2_id, quote_id, unicode_ident_id.clone(),]),
+                    }
+                ),
+                (
+                    time_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::from([libc_id]),
+                    }
+                ),
+                (
+                    tree_data_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::from([chrono_id, cpufeatures_id, serde_derive_id,]),
+                    }
+                ),
+                (
+                    unicode_ident_id,
+                    CargoTreeEntry {
+                        features: BTreeSet::new(),
+                        deps: BTreeSet::new()
+                    }
+                )
+            ]),
+            output,
+        );
+    }
+
+    #[test]
+    fn serde_cargo_tree_entry() {
+        {
+            let entry: CargoTreeEntry = serde_json::from_str("{}").unwrap();
+            assert_eq!(CargoTreeEntry::new(), entry);
+        }
+        {
+            let entry: CargoTreeEntry =
+                serde_json::from_str(r#"{"features": ["default"]}"#).unwrap();
+            assert_eq!(
+                CargoTreeEntry {
+                    features: BTreeSet::from(["default".to_owned()]),
+                    deps: BTreeSet::new(),
+                },
+                entry
+            );
+        }
+        {
+            let entry: CargoTreeEntry =
+                serde_json::from_str(r#"{"deps": ["common 1.2.3"]}"#).unwrap();
+            assert_eq!(
+                CargoTreeEntry {
+                    features: BTreeSet::new(),
+                    deps: BTreeSet::from([CrateId::new(
+                        "common".to_owned(),
+                        Version::new(1, 2, 3)
+                    )]),
+                },
+                entry
+            );
+        }
+        {
+            let entry: CargoTreeEntry =
+                serde_json::from_str(r#"{"features": ["default"], "deps": ["common 1.2.3"]}"#)
+                    .unwrap();
+            assert_eq!(
+                CargoTreeEntry {
+                    features: BTreeSet::from(["default".to_owned()]),
+                    deps: BTreeSet::from([CrateId::new(
+                        "common".to_owned(),
+                        Version::new(1, 2, 3)
+                    )]),
+                },
+                entry
+            );
+        }
+    }
+
+    #[test]
+    fn parse_registry_source() {
+        let source = Source::parse(
+            "registry+https://github.com/rust-lang/crates.io-index",
+            "1.0.1".to_owned(),
+        )
+        .unwrap();
+        assert_eq!(
+            source,
+            Source::Registry {
+                registry: "https://github.com/rust-lang/crates.io-index".to_owned(),
+                version: "1.0.1".to_owned()
+            }
+        );
+    }
+
+    #[test]
+    fn parse_git_source() {
+        let source = Source::parse("git+https://github.com/serde-rs/serde.git?rev=9b868ef831c95f50dd4bde51a7eb52e3b9ee265a#9b868ef831c95f50dd4bde51a7eb52e3b9ee265a", "unused".to_owned()).unwrap();
+        assert_eq!(
+            source,
+            Source::Git {
+                git: "https://github.com/serde-rs/serde.git".to_owned(),
+                rev: Some("9b868ef831c95f50dd4bde51a7eb52e3b9ee265a".to_owned()),
+                branch: None,
+                tag: None,
+            }
         );
     }
 }
diff --git a/crate_universe/src/metadata/dependency.rs b/crate_universe/src/metadata/dependency.rs
index 979719b..b6713ca 100644
--- a/crate_universe/src/metadata/dependency.rs
+++ b/crate_universe/src/metadata/dependency.rs
@@ -1,13 +1,15 @@
 //! Gathering dependencies is the largest part of annotating.
-use std::collections::BTreeSet;
+
+use std::collections::{BTreeMap, BTreeSet};
 
 use anyhow::{bail, Result};
 use cargo_metadata::{
-    DependencyKind, Metadata as CargoMetadata, Node, NodeDep, Package, PackageId,
+    DependencyKind, Metadata as CargoMetadata, Node, NodeDep, Package, PackageId, Target,
 };
 use cargo_platform::Platform;
 use serde::{Deserialize, Serialize};
 
+use crate::metadata::{CrateId, TreeResolverMetadata};
 use crate::select::Select;
 use crate::utils::sanitize_module_name;
 
@@ -38,7 +40,30 @@
 
 impl DependencySet {
     /// Collect all dependencies for a given node in the resolve graph.
-    pub(crate) fn new_for_node(node: &Node, metadata: &CargoMetadata) -> Self {
+    pub(crate) fn new_for_node(
+        node: &Node,
+        metadata: &CargoMetadata,
+        resolver_data: &TreeResolverMetadata,
+    ) -> Self {
+        // Build a dep tree mapping that's easily indexable via `cargo_metadata::PackageId`
+        let dep_tree: BTreeMap<CrateId, Select<BTreeSet<CrateId>>> = resolver_data
+            .iter()
+            .map(|(id, tree_data)| {
+                let mut select = Select::new();
+                for (config, data) in tree_data.items() {
+                    for dep in data.deps {
+                        select.insert(dep, config.clone());
+                    }
+                }
+                (id.clone(), select)
+            })
+            .collect();
+
+        let crate_id = {
+            let package = &metadata[&node.id];
+            CrateId::from(package)
+        };
+
         let (normal_dev_deps, normal_deps) = {
             let (dev, normal) = node
                 .deps
@@ -50,8 +75,20 @@
                 .partition(|dep| is_dev_dependency(dep));
 
             (
-                collect_deps_selectable(node, dev, metadata, DependencyKind::Development),
-                collect_deps_selectable(node, normal, metadata, DependencyKind::Normal),
+                collect_deps_selectable(
+                    node,
+                    dev,
+                    metadata,
+                    DependencyKind::Development,
+                    dep_tree.get(&crate_id),
+                ),
+                collect_deps_selectable(
+                    node,
+                    normal,
+                    metadata,
+                    DependencyKind::Normal,
+                    dep_tree.get(&crate_id),
+                ),
             )
         };
 
@@ -66,8 +103,20 @@
                 .partition(|dep| is_dev_dependency(dep));
 
             (
-                collect_deps_selectable(node, dev, metadata, DependencyKind::Development),
-                collect_deps_selectable(node, normal, metadata, DependencyKind::Normal),
+                collect_deps_selectable(
+                    node,
+                    dev,
+                    metadata,
+                    DependencyKind::Development,
+                    dep_tree.get(&crate_id),
+                ),
+                collect_deps_selectable(
+                    node,
+                    normal,
+                    metadata,
+                    DependencyKind::Normal,
+                    dep_tree.get(&crate_id),
+                ),
             )
         };
 
@@ -84,8 +133,20 @@
                 .partition(|dep| is_proc_macro_package(&metadata[&dep.pkg]));
 
             (
-                collect_deps_selectable(node, proc_macro, metadata, DependencyKind::Build),
-                collect_deps_selectable(node, normal, metadata, DependencyKind::Build),
+                collect_deps_selectable(
+                    node,
+                    proc_macro,
+                    metadata,
+                    DependencyKind::Build,
+                    dep_tree.get(&crate_id),
+                ),
+                collect_deps_selectable(
+                    node,
+                    normal,
+                    metadata,
+                    DependencyKind::Build,
+                    dep_tree.get(&crate_id),
+                ),
             )
         };
 
@@ -120,7 +181,7 @@
 }
 
 /// For details on optional dependencies see [the Rust docs](https://doc.rust-lang.org/cargo/reference/features.html#optional-dependencies).
-fn is_optional_crate_enabled(
+fn is_optional_dependency(
     parent: &Node,
     dep: &NodeDep,
     target: Option<&Platform>,
@@ -129,27 +190,12 @@
 ) -> bool {
     let pkg = &metadata[&parent.id];
 
-    let mut enabled_deps = pkg
-        .features
-        .iter()
-        .filter(|(pkg_feature, _)| parent.features.contains(pkg_feature))
-        .flat_map(|(_, features)| features)
-        .filter_map(|f| f.strip_prefix("dep:"));
-
-    // if the crate is marked as optional dependency, we check whether
-    // a feature prefixed with dep: is enabled
-    if let Some(toml_dep) = pkg
-        .dependencies
+    pkg.dependencies
         .iter()
         .filter(|&d| d.kind == kind)
         .filter(|&d| d.target.as_ref() == target)
         .filter(|&d| d.optional)
-        .find(|&d| sanitize_module_name(d.rename.as_ref().unwrap_or(&d.name)) == dep.name)
-    {
-        enabled_deps.any(|d| d == toml_dep.rename.as_ref().unwrap_or(&toml_dep.name))
-    } else {
-        true
-    }
+        .any(|d| sanitize_module_name(d.rename.as_ref().unwrap_or(&d.name)) == dep.name)
 }
 
 fn collect_deps_selectable(
@@ -157,17 +203,46 @@
     deps: Vec<&NodeDep>,
     metadata: &cargo_metadata::Metadata,
     kind: DependencyKind,
+    tree_data: Option<&Select<BTreeSet<CrateId>>>,
 ) -> Select<BTreeSet<Dependency>> {
     let mut select: Select<BTreeSet<Dependency>> = Select::default();
 
+    // Unfortunately, Cargo metadata is not as accurate as it could be due
+    // to the lack of `resolver = 2` support in the `cargo metadata` subcommand.
+    // To ensure accurate dependencies are determined, metadata is only used to
+    // determine the general list of dependencies but any one of them can be demoted
+    // to a platform specific dep depending on the `cargo tree` data provided.
+    //
+    // For more details see: https://github.com/rust-lang/cargo/issues/9863
     for dep in deps.into_iter() {
         let dep_pkg = &metadata[&dep.pkg];
         let target_name = get_library_target_name(dep_pkg, &dep.name)
             .expect("Nodes Dependencies are expected to exclusively be library-like targets");
         let alias = get_target_alias(&dep.name, dep_pkg);
+        let crate_id = CrateId::from(dep_pkg);
 
         for kind_info in &dep.dep_kinds {
-            if is_optional_crate_enabled(node, dep, kind_info.target.as_ref(), metadata, kind) {
+            if kind_info.kind != kind {
+                continue;
+            }
+
+            // For optional dependencies, use the Feature tree resolver data to determine
+            // if or how the dependency should be added.
+            if is_optional_dependency(node, dep, kind_info.target.as_ref(), metadata, kind) {
+                // Collect the dependency from any configuration.
+                if let Some(data) = tree_data {
+                    for (config, tree_dep) in data.items() {
+                        if crate_id == tree_dep {
+                            let dependency = Dependency {
+                                package_id: dep.pkg.clone(),
+                                target_name: target_name.clone(),
+                                alias: alias.clone(),
+                            };
+                            select.insert(dependency, config);
+                        }
+                    }
+                }
+            } else {
                 let dependency = Dependency {
                     package_id: dep.pkg.clone(),
                     target_name: target_name.clone(),
@@ -187,20 +262,29 @@
     select
 }
 
+/// Packages may have targets that match aliases of dependents. This function
+/// checks a target to see if it's an unexpected type for a dependency.
+fn is_ignored_package_target(target: &Target) -> bool {
+    target
+        .kind
+        .iter()
+        .any(|t| ["example", "bench", "test"].contains(&t.as_str()))
+}
+
 fn is_lib_package(package: &Package) -> bool {
     package.targets.iter().any(|target| {
         target
             .crate_types
             .iter()
             .any(|t| ["lib", "rlib"].contains(&t.as_str()))
+            && !is_ignored_package_target(target)
     })
 }
 
 fn is_proc_macro_package(package: &Package) -> bool {
-    package
-        .targets
-        .iter()
-        .any(|target| target.crate_types.iter().any(|t| t == "proc-macro"))
+    package.targets.iter().any(|target| {
+        target.crate_types.iter().any(|t| t == "proc-macro") && !is_ignored_package_target(target)
+    })
 }
 
 fn is_dev_dependency(node_dep: &NodeDep) -> bool {
@@ -238,8 +322,13 @@
 
 fn get_library_target_name(package: &Package, potential_name: &str) -> Result<String> {
     // If the potential name is not an alias in a dependent's package, a target's name
-    // should match which means we already know what the target library name is.
-    if package.targets.iter().any(|t| t.name == potential_name) {
+    // should match which means we already know what the target library name is. The
+    // only exception is for targets that are otherwise ignored (like benchmarks or examples).
+    if package
+        .targets
+        .iter()
+        .any(|t| t.name == potential_name && !is_ignored_package_target(t))
+    {
         return Ok(potential_name.to_string());
     }
 
@@ -271,11 +360,13 @@
 /// for targets where packages (packages[#].targets[#].name) uses crate names. In order to
 /// determine whether or not a dependency is aliased, we compare it with all available targets
 /// on it's package. Note that target names are not guaranteed to be module names where Node
-/// dependencies are, so we need to do a conversion to check for this
+/// dependencies are, so we need to do a conversion to check for this. This function will
+/// return the name of a target's alias in the content of the current dependent if it is aliased.
 fn get_target_alias(target_name: &str, package: &Package) -> Option<String> {
     match package
         .targets
         .iter()
+        .filter(|t| !is_ignored_package_target(t))
         .all(|t| sanitize_module_name(&t.name) != target_name)
     {
         true => Some(target_name.to_string()),
@@ -285,10 +376,11 @@
 
 #[cfg(test)]
 mod test {
-    use std::collections::BTreeSet;
-
     use super::*;
 
+    use semver::Version;
+
+    use crate::metadata::CargoTreeEntry;
     use crate::test::*;
 
     #[test]
@@ -428,12 +520,61 @@
     }
 
     #[test]
+    fn example_proc_macro_dep() {
+        let metadata = metadata::example_proc_macro_dep();
+
+        let node = find_metadata_node("example-proc-macro-dep", &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
+
+        let normal_deps: Vec<_> = dependencies
+            .normal_deps
+            .items()
+            .into_iter()
+            .map(|(_, dep)| dep.target_name)
+            .collect();
+        assert_eq!(normal_deps, vec!["proc_macro_rules"]);
+
+        let proc_macro_deps: Vec<_> = dependencies
+            .proc_macro_deps
+            .items()
+            .into_iter()
+            .map(|(_, dep)| dep.target_name)
+            .collect();
+        assert_eq!(proc_macro_deps, Vec::<&str>::new());
+    }
+
+    #[test]
+    fn bench_name_alias_dep() {
+        let metadata = metadata::alias();
+
+        let node = find_metadata_node("surrealdb-core", &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
+
+        let bindings = dependencies.normal_deps.items();
+
+        // It's critical that the dep be found with the correct name and not the
+        // alias that the `aliases` package is using that coincidentally matches the
+        // `bench` target `executor` in the `async-executor` package.
+        let async_executor = bindings
+            .iter()
+            .find(|(_, dep)| dep.target_name == "async_executor")
+            .map(|(_, dep)| dep)
+            .unwrap();
+
+        // Ensure alias data is still tracked.
+        assert_eq!(async_executor.alias, Some("executor".to_owned()));
+    }
+
+    #[test]
     fn sys_dependencies() {
         let metadata = metadata::build_scripts();
 
         let openssl_node = find_metadata_node("openssl", &metadata);
 
-        let dependencies = DependencySet::new_for_node(openssl_node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(openssl_node, &metadata, &TreeResolverMetadata::default());
 
         let normal_sys_crate =
             dependencies
@@ -466,7 +607,8 @@
         let metadata = metadata::build_scripts();
 
         let libssh2 = find_metadata_node("libssh2-sys", &metadata);
-        let libssh2_depset = DependencySet::new_for_node(libssh2, &metadata);
+        let libssh2_depset =
+            DependencySet::new_for_node(libssh2, &metadata, &TreeResolverMetadata::default());
 
         // Collect build dependencies into a set
         let build_deps: BTreeSet<String> = libssh2_depset
@@ -478,10 +620,10 @@
 
         assert_eq!(
             BTreeSet::from([
-                "cc 1.0.72 (registry+https://github.com/rust-lang/crates.io-index)".to_owned(),
-                "pkg-config 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)"
+                "registry+https://github.com/rust-lang/crates.io-index#cc@1.0.72".to_owned(),
+                "registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.24"
                     .to_owned(),
-                "vcpkg 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)".to_owned()
+                "registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15".to_owned()
             ]),
             build_deps,
         );
@@ -496,9 +638,9 @@
 
         assert_eq!(
             BTreeSet::from([
-                "libc 0.2.112 (registry+https://github.com/rust-lang/crates.io-index)".to_owned(),
-                "libz-sys 1.1.8 (registry+https://github.com/rust-lang/crates.io-index)".to_owned(),
-                "openssl-sys 0.9.87 (registry+https://github.com/rust-lang/crates.io-index)"
+                "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.112".to_owned(),
+                "registry+https://github.com/rust-lang/crates.io-index#libz-sys@1.1.8".to_owned(),
+                "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.87"
                     .to_owned(),
             ]),
             normal_deps,
@@ -515,7 +657,8 @@
         let metadata = metadata::alias();
 
         let aliases_node = find_metadata_node("aliases", &metadata);
-        let dependencies = DependencySet::new_for_node(aliases_node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(aliases_node, &metadata, &TreeResolverMetadata::default());
 
         let aliases: Vec<Dependency> = dependencies
             .normal_deps
@@ -541,7 +684,8 @@
         let metadata = metadata::crate_types();
 
         let node = find_metadata_node("crate-types", &metadata);
-        let dependencies = DependencySet::new_for_node(node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
 
         let rlib_deps: Vec<Dependency> = dependencies
             .normal_deps
@@ -570,7 +714,8 @@
         let metadata = metadata::multi_cfg_dep();
 
         let node = find_metadata_node("cpufeatures", &metadata);
-        let dependencies = DependencySet::new_for_node(node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
 
         let libc_cfgs: BTreeSet<Option<String>> = dependencies
             .normal_deps
@@ -595,7 +740,8 @@
         let metadata = metadata::multi_kind_proc_macro_dep();
 
         let node = find_metadata_node("multi-kind-proc-macro-dep", &metadata);
-        let dependencies = DependencySet::new_for_node(node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
 
         let lib_deps: Vec<_> = dependencies
             .proc_macro_deps
@@ -619,7 +765,8 @@
         let metadata = metadata::optional_deps_disabled();
 
         let node = find_metadata_node("clap", &metadata);
-        let dependencies = DependencySet::new_for_node(node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
 
         assert!(!dependencies
             .normal_deps
@@ -634,7 +781,8 @@
         let metadata = metadata::renamed_optional_deps_disabled();
 
         let serde_with = find_metadata_node("serde_with", &metadata);
-        let serde_with_depset = DependencySet::new_for_node(serde_with, &metadata);
+        let serde_with_depset =
+            DependencySet::new_for_node(serde_with, &metadata, &TreeResolverMetadata::new());
         assert!(!serde_with_depset
             .normal_deps
             .items()
@@ -645,22 +793,38 @@
     #[test]
     fn optional_deps_enabled() {
         let metadata = metadata::optional_deps_enabled();
+        let mut select = Select::new();
+        select.insert(
+            CargoTreeEntry {
+                features: BTreeSet::new(),
+                deps: BTreeSet::from([
+                    CrateId::new("is-terminal".to_owned(), Version::new(0, 4, 5)),
+                    CrateId::new("termcolor".to_owned(), Version::new(1, 2, 0)),
+                ]),
+            },
+            None,
+        );
+        let resolver_data = TreeResolverMetadata::from([(
+            CrateId::new("clap".to_owned(), Version::new(4, 1, 1)),
+            select,
+        )]);
 
         let clap = find_metadata_node("clap", &metadata);
-        let clap_depset = DependencySet::new_for_node(clap, &metadata);
+        let clap_depset = DependencySet::new_for_node(clap, &metadata, &resolver_data);
         assert_eq!(
             clap_depset
                 .normal_deps
                 .items()
                 .iter()
                 .filter(|(configuration, dep)| configuration.is_none()
-                    && (dep.target_name == "is-terminal" || dep.target_name == "termcolor"))
+                    && (dep.target_name == "is_terminal" || dep.target_name == "termcolor"))
                 .count(),
             2
         );
 
         let notify = find_metadata_node("notify", &metadata);
-        let notify_depset = DependencySet::new_for_node(notify, &metadata);
+        let notify_depset =
+            DependencySet::new_for_node(notify, &metadata, &TreeResolverMetadata::default());
 
         // mio is not present in the common list of dependencies
         assert!(!notify_depset
@@ -693,7 +857,8 @@
         let metadata = metadata::optional_deps_disabled_build_dep_enabled();
 
         let node = find_metadata_node("gherkin", &metadata);
-        let dependencies = DependencySet::new_for_node(node, &metadata);
+        let dependencies =
+            DependencySet::new_for_node(node, &metadata, &TreeResolverMetadata::default());
 
         assert!(!dependencies
             .normal_deps
@@ -712,8 +877,21 @@
     fn renamed_optional_deps_enabled() {
         let metadata = metadata::renamed_optional_deps_enabled();
 
+        let mut select = Select::new();
+        select.insert(
+            CargoTreeEntry {
+                features: BTreeSet::new(),
+                deps: BTreeSet::from([CrateId::new("ecdsa".to_owned(), Version::new(0, 16, 8))]),
+            },
+            None,
+        );
+        let resolver_data = TreeResolverMetadata::from([(
+            CrateId::new("p256".to_owned(), Version::new(0, 13, 2)),
+            select,
+        )]);
+
         let p256 = find_metadata_node("p256", &metadata);
-        let p256_depset = DependencySet::new_for_node(p256, &metadata);
+        let p256_depset = DependencySet::new_for_node(p256, &metadata, &resolver_data);
         assert_eq!(
             p256_depset
                 .normal_deps
@@ -724,4 +902,69 @@
             1
         );
     }
+
+    #[test]
+    fn tree_resolver_deps() {
+        let metadata = metadata::resolver_2_deps_metadata();
+
+        let mut select = Select::new();
+        select.insert(
+            CargoTreeEntry {
+                deps: BTreeSet::from([
+                    CrateId::new("libc".to_owned(), Version::new(0, 2, 153)),
+                    CrateId::new("mio".to_owned(), Version::new(0, 8, 11)),
+                    CrateId::new("socket2".to_owned(), Version::new(0, 5, 6)),
+                ]),
+                features: BTreeSet::from([
+                    "io-std".to_owned(),
+                    "libc".to_owned(),
+                    "mio".to_owned(),
+                    "net".to_owned(),
+                    "rt".to_owned(),
+                    "socket2".to_owned(),
+                    "sync".to_owned(),
+                    "time".to_owned(),
+                ]),
+            },
+            Some("x86_64-unknown-linux-gnu".to_owned()),
+        );
+        select.insert(
+            CargoTreeEntry {
+                deps: BTreeSet::from([
+                    CrateId::new("bytes".to_owned(), Version::new(1, 6, 0)),
+                    CrateId::new("pin-project-lite".to_owned(), Version::new(0, 2, 14)),
+                ]),
+                features: BTreeSet::from([
+                    "bytes".to_owned(),
+                    "default".to_owned(),
+                    "io-util".to_owned(),
+                ]),
+            },
+            None,
+        );
+
+        let tree_metadata = TreeResolverMetadata::from([(
+            CrateId::new("tokio".to_owned(), Version::new(1, 37, 0)),
+            select,
+        )]);
+
+        let tokio_node = find_metadata_node("tokio", &metadata);
+        let tokio_depset = DependencySet::new_for_node(tokio_node, &metadata, &tree_metadata);
+        assert_eq!(
+            tokio_depset
+                .normal_deps
+                .items()
+                .iter()
+                .filter(|(configuration, dep)| {
+                    let is_common = configuration.is_none();
+                    let is_mio =
+                        dep.target_name == "mio" || dep.package_id.to_string().contains("mio");
+
+                    is_common && is_mio
+                })
+                .count(),
+            0,
+            "`mio` is a platform specific dependency and therefore should not be identified under the common configuration."
+        );
+    }
 }
diff --git a/crate_universe/src/metadata/metadata_annotation.rs b/crate_universe/src/metadata/metadata_annotation.rs
index 988b8ba..2de93d1 100644
--- a/crate_universe/src/metadata/metadata_annotation.rs
+++ b/crate_universe/src/metadata/metadata_annotation.rs
@@ -1,7 +1,6 @@
 //! Collect and store information from Cargo metadata specific to Bazel's needs
 
 use std::collections::{BTreeMap, BTreeSet};
-use std::convert::TryFrom;
 use std::path::PathBuf;
 
 use anyhow::{bail, Result};
@@ -11,7 +10,7 @@
 
 use crate::config::{Commitish, Config, CrateAnnotations, CrateId};
 use crate::metadata::dependency::DependencySet;
-use crate::select::Select;
+use crate::metadata::TreeResolverMetadata;
 use crate::splicing::{SourceInfo, WorkspaceMetadata};
 
 pub(crate) type CargoMetadata = cargo_metadata::Metadata;
@@ -74,7 +73,11 @@
             .map(|node| {
                 (
                     node.id.clone(),
-                    Self::annotate_crate(node.clone(), &metadata),
+                    Self::annotate_crate(
+                        node.clone(),
+                        &metadata,
+                        &workspace_metadata.tree_metadata,
+                    ),
                 )
             })
             .collect();
@@ -94,9 +97,13 @@
         }
     }
 
-    fn annotate_crate(node: Node, metadata: &CargoMetadata) -> CrateAnnotation {
+    fn annotate_crate(
+        node: Node,
+        metadata: &CargoMetadata,
+        resolver_data: &TreeResolverMetadata,
+    ) -> CrateAnnotation {
         // Gather all dependencies
-        let deps = DependencySet::new_for_node(&node, metadata);
+        let deps = DependencySet::new_for_node(&node, metadata, resolver_data);
 
         CrateAnnotation { node, deps }
     }
@@ -273,10 +280,11 @@
         // metadata the raw source info is used for registry crates and `crates.io` is
         // assumed to be the source.
         if source.is_registry() {
+            // source url
             return Ok(SourceAnnotation::Http {
                 url: format!(
-                    "https://crates.io/api/v1/crates/{}/{}/download",
-                    lock_pkg.name, lock_pkg.version,
+                    "https://static.crates.io/crates/{}/{}/download",
+                    lock_pkg.name, lock_pkg.version
                 ),
                 sha256: lock_pkg
                     .checksum
@@ -363,9 +371,6 @@
 
     /// Pairred crate annotations
     pub(crate) pairred_extras: BTreeMap<CrateId, PairedExtras>,
-
-    /// Feature set for each target triplet and crate.
-    pub(crate) crate_features: BTreeMap<CrateId, Select<BTreeSet<String>>>,
 }
 
 impl Annotations {
@@ -424,15 +429,12 @@
             );
         }
 
-        let crate_features = metadata_annotation.workspace_metadata.features.clone();
-
         // Annotate metadata
         Ok(Annotations {
             metadata: metadata_annotation,
             lockfile: lockfile_annotation,
             config,
             pairred_extras,
-            crate_features,
         })
     }
 }
@@ -472,8 +474,13 @@
 #[cfg(test)]
 mod test {
     use super::*;
-    use crate::config::CrateNameAndVersionReq;
 
+    use semver::Version;
+    use serde_json::json;
+
+    use crate::config::CrateNameAndVersionReq;
+    use crate::metadata::CargoTreeEntry;
+    use crate::select::Select;
     use crate::test::*;
 
     #[test]
@@ -519,9 +526,6 @@
     }
 
     #[test]
-    fn annotate_metadata_with_no_deps() {}
-
-    #[test]
     fn annotate_lockfile_with_no_deps() {
         LockfileAnnotation::new(test::lockfile::no_deps(), &test::metadata::no_deps()).unwrap();
     }
@@ -534,7 +538,7 @@
                 .crates;
         let tracing_core = crates
             .iter()
-            .find(|(k, _)| k.repr.starts_with("tracing-core "))
+            .find(|(k, _)| k.repr.contains("#tracing-core@"))
             .map(|(_, v)| v)
             .unwrap();
         match tracing_core {
@@ -557,7 +561,9 @@
                 .unwrap()
                 .crates;
 
-        let package_id = PackageId { repr: "tracing 0.2.0 (git+https://github.com/tokio-rs/tracing.git?branch=master#1e09e50e8d15580b5929adbade9c782a6833e4a0)".into() };
+        let package_id = PackageId {
+            repr: "git+https://github.com/tokio-rs/tracing.git?branch=master#tracing@0.2.0".into(),
+        };
         let annotation = crates.get(&package_id).unwrap();
 
         let commitish = match annotation {
@@ -631,4 +637,58 @@
         };
         assert_eq!(*extras, expected);
     }
+
+    #[test]
+    fn test_find_workspace_metadata() {
+        let mut metadata = metadata::common();
+        metadata.workspace_metadata = json!({
+            "cargo-bazel": {
+            "package_prefixes": {},
+            "sources": {},
+            "tree_metadata": {
+                "bitflags 1.3.2": {
+                    "common": {
+                        "features": [
+                            "default",
+                        ],
+                    },
+                    "selects": {
+                        "x86_64-unknown-linux-gnu": {
+                            "features": [
+                                "std",
+                            ],
+                            "deps": [
+                                "libc 1.2.3",
+                            ],
+                        },
+                    }
+                }
+            },
+        }
+        });
+
+        let mut select = Select::new();
+        select.insert(
+            CargoTreeEntry {
+                features: BTreeSet::from(["default".to_owned()]),
+                deps: BTreeSet::new(),
+            },
+            None,
+        );
+        select.insert(
+            CargoTreeEntry {
+                features: BTreeSet::from(["std".to_owned()]),
+                deps: BTreeSet::from([CrateId::new("libc".to_owned(), Version::new(1, 2, 3))]),
+            },
+            Some("x86_64-unknown-linux-gnu".to_owned()),
+        );
+        let expected = TreeResolverMetadata::from([(
+            CrateId::new("bitflags".to_owned(), Version::new(1, 3, 2)),
+            select,
+        )]);
+
+        let result = find_workspace_metadata(&metadata).unwrap();
+
+        assert_eq!(expected, result.tree_metadata);
+    }
 }
diff --git a/crate_universe/src/rendering.rs b/crate_universe/src/rendering.rs
index b9cd992..2b6ca32 100644
--- a/crate_universe/src/rendering.rs
+++ b/crate_universe/src/rendering.rs
@@ -4,8 +4,7 @@
 
 use std::collections::{BTreeMap, BTreeSet};
 use std::fs;
-use std::iter::FromIterator;
-use std::path::{Path, PathBuf};
+use std::path::PathBuf;
 use std::str::FromStr;
 
 use anyhow::{bail, Context as AnyhowContext, Result};
@@ -372,33 +371,43 @@
         }
 
         for rule in &krate.targets {
-            match rule {
-                Rule::BuildScript(target) => {
-                    load("@rules_rust//cargo:defs.bzl", "cargo_build_script");
-                    let cargo_build_script =
-                        self.make_cargo_build_script(platforms, krate, target)?;
-                    starlark.push(Starlark::CargoBuildScript(cargo_build_script));
-                    starlark.push(Starlark::Alias(Alias {
-                        rule: AliasRule::default().rule(),
-                        name: target.crate_name.clone(),
-                        actual: Label::from_str(&format!(":{}_bs", krate.name)).unwrap(),
-                        tags: BTreeSet::from(["manual".to_owned()]),
-                    }));
-                }
-                Rule::ProcMacro(target) => {
-                    load("@rules_rust//rust:defs.bzl", "rust_proc_macro");
-                    let rust_proc_macro = self.make_rust_proc_macro(platforms, krate, target)?;
-                    starlark.push(Starlark::RustProcMacro(rust_proc_macro));
-                }
-                Rule::Library(target) => {
-                    load("@rules_rust//rust:defs.bzl", "rust_library");
-                    let rust_library = self.make_rust_library(platforms, krate, target)?;
-                    starlark.push(Starlark::RustLibrary(rust_library));
-                }
-                Rule::Binary(target) => {
-                    load("@rules_rust//rust:defs.bzl", "rust_binary");
-                    let rust_binary = self.make_rust_binary(platforms, krate, target)?;
-                    starlark.push(Starlark::RustBinary(rust_binary));
+            if let Some(override_target) = krate.override_targets.get(rule.override_target_key()) {
+                starlark.push(Starlark::Alias(Alias {
+                    rule: AliasRule::default().rule(),
+                    name: rule.crate_name().to_owned(),
+                    actual: override_target.clone(),
+                    tags: BTreeSet::from(["manual".to_owned()]),
+                }));
+            } else {
+                match rule {
+                    Rule::BuildScript(target) => {
+                        load("@rules_rust//cargo:defs.bzl", "cargo_build_script");
+                        let cargo_build_script =
+                            self.make_cargo_build_script(platforms, krate, target)?;
+                        starlark.push(Starlark::CargoBuildScript(cargo_build_script));
+                        starlark.push(Starlark::Alias(Alias {
+                            rule: AliasRule::default().rule(),
+                            name: target.crate_name.clone(),
+                            actual: Label::from_str("_bs").unwrap(),
+                            tags: BTreeSet::from(["manual".to_owned()]),
+                        }));
+                    }
+                    Rule::ProcMacro(target) => {
+                        load("@rules_rust//rust:defs.bzl", "rust_proc_macro");
+                        let rust_proc_macro =
+                            self.make_rust_proc_macro(platforms, krate, target)?;
+                        starlark.push(Starlark::RustProcMacro(rust_proc_macro));
+                    }
+                    Rule::Library(target) => {
+                        load("@rules_rust//rust:defs.bzl", "rust_library");
+                        let rust_library = self.make_rust_library(platforms, krate, target)?;
+                        starlark.push(Starlark::RustLibrary(rust_library));
+                    }
+                    Rule::Binary(target) => {
+                        load("@rules_rust//rust:defs.bzl", "rust_binary");
+                        let rust_binary = self.make_rust_binary(platforms, krate, target)?;
+                        starlark.push(Starlark::RustBinary(rust_binary));
+                    }
                 }
             }
         }
@@ -436,8 +445,8 @@
             //
             // Do not change this name to "cargo_build_script".
             //
-            // This is set to a short suffix to avoid long path name issues on windows.
-            name: format!("{}_bs", krate.name),
+            // This is set to a short name to avoid long path name issues on windows.
+            name: "_bs".to_string(),
             aliases: SelectDict::new(self.make_aliases(krate, true, false), platforms),
             build_script_env: SelectDict::new(
                 attrs
@@ -485,6 +494,7 @@
             edition: krate.common_attrs.edition.clone(),
             linker_script: krate.common_attrs.linker_script.clone(),
             links: attrs.and_then(|attrs| attrs.links.clone()),
+            pkg_name: Some(krate.name.clone()),
             proc_macro_deps: SelectSet::new(
                 self.make_deps(
                     attrs
@@ -780,16 +790,7 @@
 }
 
 /// Write a set of [crate::context::crate_context::CrateContext] to disk.
-pub(crate) fn write_outputs(
-    outputs: BTreeMap<PathBuf, String>,
-    out_dir: &Path,
-    dry_run: bool,
-) -> Result<()> {
-    let outputs: BTreeMap<PathBuf, String> = outputs
-        .into_iter()
-        .map(|(path, content)| (out_dir.join(path), content))
-        .collect();
-
+pub(crate) fn write_outputs(outputs: BTreeMap<PathBuf, String>, dry_run: bool) -> Result<()> {
     if dry_run {
         for (path, content) in outputs {
             println!(
@@ -808,7 +809,6 @@
                 path.parent()
                     .expect("All file paths should have valid directories"),
             )?;
-
             fs::write(&path, content.as_bytes())
                 .context(format!("Failed to write file to disk: {}", path.display()))?;
         }
@@ -902,13 +902,12 @@
     use super::*;
 
     use indoc::indoc;
-    use std::collections::BTreeSet;
 
-    use crate::config::{Config, CrateId, VendorMode};
-    use crate::context::crate_context::{CrateContext, Rule};
-    use crate::context::{BuildScriptAttributes, CommonAttributes, Context, TargetAttributes};
+    use crate::config::{Config, CrateId};
+    use crate::context::{BuildScriptAttributes, CommonAttributes};
     use crate::metadata::Annotations;
     use crate::test;
+    use crate::utils::normalize_cargo_file_paths;
 
     const VERSION_ZERO_ONE_ZERO: semver::Version = semver::Version::new(0, 1, 0);
 
@@ -978,6 +977,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1015,6 +1015,7 @@
                 disable_pipelining: true,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1055,6 +1056,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1070,7 +1072,7 @@
         assert!(build_file_content.contains("\"crate-name=mock_crate\""));
 
         // Ensure `cargo_build_script` requirements are met
-        assert!(build_file_content.contains("name = \"mock_crate_bs\""));
+        assert!(build_file_content.contains("name = \"_bs\""));
     }
 
     #[test]
@@ -1095,6 +1097,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1132,6 +1135,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1171,6 +1175,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1192,7 +1197,7 @@
         };
         let annotations =
             Annotations::new(test::metadata::alias(), test::lockfile::alias(), config).unwrap();
-        let context = Context::new(annotations).unwrap();
+        let context = Context::new(annotations, false).unwrap();
 
         let renderer = Renderer::new(mock_render_config(None), mock_supported_platform_triples());
         let output = renderer.render(&context).unwrap();
@@ -1225,6 +1230,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1258,6 +1264,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1297,6 +1304,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1312,7 +1320,7 @@
         assert!(!defs_module.contains("def crate_repositories():"));
 
         // Local vendoring does not produce a `crates.bzl` file.
-        assert!(output.get(&PathBuf::from("crates.bzl")).is_none());
+        assert!(!output.contains_key(&PathBuf::from("crates.bzl")));
     }
 
     #[test]
@@ -1348,6 +1356,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1394,7 +1403,7 @@
         let lockfile = test::lockfile::multi_cfg_dep();
 
         let annotations = Annotations::new(metadata, lockfile, config.clone()).unwrap();
-        let context = Context::new(annotations).unwrap();
+        let context = Context::new(annotations, false).unwrap();
 
         let renderer = Renderer::new(config.rendering, config.supported_platform_triples);
         let output = renderer.render(&context).unwrap();
@@ -1458,6 +1467,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1504,6 +1514,7 @@
                 disable_pipelining: false,
                 extra_aliased_targets: BTreeMap::default(),
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1556,6 +1567,7 @@
                 repository: None,
                 license: None,
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1619,6 +1631,7 @@
                 repository: None,
                 license: None,
                 alias_rule: None,
+                override_targets: BTreeMap::default(),
             },
         );
 
@@ -1660,4 +1673,77 @@
             .replace(' ', "")
             .contains(&expected.replace(' ', "")));
     }
+
+    #[test]
+    fn write_outputs_semver_metadata() {
+        let mut context = Context::default();
+        // generate crate for libbpf-sys-1.4.0-v1.4.0
+        let mut version = semver::Version::new(1, 4, 0);
+        version.build = semver::BuildMetadata::new("v1.4.0").unwrap();
+        // ensure metadata has a +
+        assert!(version.to_string().contains('+'));
+        let crate_id = CrateId::new("libbpf-sys".to_owned(), version);
+
+        context.crates.insert(
+            crate_id.clone(),
+            CrateContext {
+                name: crate_id.name,
+                version: crate_id.version,
+                package_url: None,
+                repository: None,
+                targets: BTreeSet::from([Rule::Library(mock_target_attributes())]),
+                library_target_name: None,
+                common_attrs: CommonAttributes::default(),
+                build_script_attrs: None,
+                license: None,
+                license_ids: BTreeSet::default(),
+                license_file: None,
+                additive_build_file_content: None,
+                disable_pipelining: false,
+                extra_aliased_targets: BTreeMap::default(),
+                alias_rule: None,
+                override_targets: BTreeMap::default(),
+            },
+        );
+
+        let mut config = mock_render_config(Some(VendorMode::Local));
+        // change templates so it matches local vendor
+        config.build_file_template = "//{name}-{version}:BUILD.bazel".into();
+
+        // Enable local vendor mode
+        let renderer = Renderer::new(config, mock_supported_platform_triples());
+        let output = renderer.render(&context).unwrap();
+        eprintln!("output before {:?}", output.keys());
+        // Local vendoring does not produce a `crate_repositories` macro
+        let defs_module = output.get(&PathBuf::from("defs.bzl")).unwrap();
+        assert!(!defs_module.contains("def crate_repositories():"));
+
+        // Local vendoring does not produce a `crates.bzl` file.
+        assert!(!output.contains_key(&PathBuf::from("crates.bzl")));
+
+        // create tempdir to write to
+        let outdir = tempfile::tempdir().unwrap();
+
+        // create dir to mimic cargo vendor
+        let _ = std::fs::create_dir_all(outdir.path().join("libbpf-sys-1.4.0+v1.4.0"));
+
+        let normalized_outputs = normalize_cargo_file_paths(output, outdir.path());
+        eprintln!(
+            "Normalized outputs are {:?}",
+            normalized_outputs.clone().into_keys()
+        );
+
+        write_outputs(normalized_outputs, false).unwrap();
+        let expected = outdir.path().join("libbpf-sys-1.4.0-v1.4.0");
+        let mut found = false;
+        // ensure no files paths have a + sign
+        for entry in fs::read_dir(outdir.path()).unwrap() {
+            let path_str = entry.as_ref().unwrap().path().to_str().unwrap().to_string();
+            if entry.unwrap().path() == expected {
+                found = true;
+            }
+            assert!(!path_str.contains('+'));
+        }
+        assert!(found);
+    }
 }
diff --git a/crate_universe/src/rendering/template_engine.rs b/crate_universe/src/rendering/template_engine.rs
index 083ee0a..03a85a6 100644
--- a/crate_universe/src/rendering/template_engine.rs
+++ b/crate_universe/src/rendering/template_engine.rs
@@ -1,10 +1,9 @@
-//! A template engine backed by [Tera] for rendering Files.
+//! A template engine backed by [tera::Tera] for rendering Files.
 
 use std::collections::HashMap;
 
 use anyhow::{Context as AnyhowContext, Result};
 use serde_json::{from_value, to_value, Value};
-use tera::{self, Tera};
 
 use crate::config::RenderConfig;
 use crate::context::Context;
@@ -16,13 +15,13 @@
 use crate::utils::sanitize_repository_name;
 
 pub(crate) struct TemplateEngine {
-    engine: Tera,
+    engine: tera::Tera,
     context: tera::Context,
 }
 
 impl TemplateEngine {
     pub(crate) fn new(render_config: &RenderConfig) -> Self {
-        let mut tera = Tera::default();
+        let mut tera = tera::Tera::default();
         tera.add_raw_templates(vec![
             (
                 "partials/module/aliases_map.j2",
diff --git a/crate_universe/src/splicing.rs b/crate_universe/src/splicing.rs
index 3cb9f4e..eb5e314 100644
--- a/crate_universe/src/splicing.rs
+++ b/crate_universe/src/splicing.rs
@@ -5,7 +5,6 @@
 mod splicer;
 
 use std::collections::{BTreeMap, BTreeSet};
-use std::convert::TryFrom;
 use std::fs;
 use std::path::{Path, PathBuf};
 use std::str::FromStr;
@@ -16,8 +15,7 @@
 use serde::{Deserialize, Serialize};
 
 use crate::config::CrateId;
-use crate::metadata::{Cargo, CargoUpdateRequest, LockGenerator};
-use crate::select::Select;
+use crate::metadata::{Cargo, CargoUpdateRequest, LockGenerator, TreeResolverMetadata};
 use crate::utils;
 use crate::utils::starlark::Label;
 
@@ -175,7 +173,7 @@
     ///
     /// We store this here because it's computed during the splicing phase via
     /// calls to "cargo tree" which need the full spliced workspace.
-    pub(crate) features: BTreeMap<CrateId, Select<BTreeSet<String>>>,
+    pub(crate) tree_metadata: TreeResolverMetadata,
 }
 
 impl TryFrom<toml::Value> for WorkspaceMetadata {
@@ -198,7 +196,7 @@
     fn try_from(value: serde_json::Value) -> Result<Self, Self::Error> {
         match value.get("cargo-bazel") {
             Some(value) => {
-                serde_json::from_value(value.to_owned()).context("Faield to deserialize json value")
+                serde_json::from_value(value.to_owned()).context("Failed to deserialize json value")
             }
             None => bail!("cargo-bazel workspace metadata not found"),
         }
@@ -248,14 +246,17 @@
             sources: BTreeMap::new(),
             workspace_prefix,
             package_prefixes,
-            features: BTreeMap::new(),
+            tree_metadata: TreeResolverMetadata::new(),
         })
     }
 
+    /// Update an existing Cargo manifest with metadata about registry urls and target
+    /// features that are needed in generator steps beyond splicing.
+    #[tracing::instrument(skip_all)]
     pub(crate) fn write_registry_urls_and_feature_map(
         cargo: &Cargo,
         lockfile: &cargo_lock::Lockfile,
-        features: BTreeMap<CrateId, Select<BTreeSet<String>>>,
+        resolver_data: TreeResolverMetadata,
         input_manifest_path: &Path,
         output_manifest_path: &Path,
     ) -> Result<()> {
@@ -391,7 +392,7 @@
                         source_info.map(|source_info| (crate_id, source_info))
                     }),
             );
-        workspace_metaata.features = features;
+        workspace_metaata.tree_metadata = resolver_data;
         workspace_metaata.inject_into(&mut manifest)?;
 
         write_root_manifest(output_manifest_path, manifest)?;
@@ -447,7 +448,6 @@
     manifest_path: &SplicedManifest,
     existing_lock: &Option<PathBuf>,
     cargo_bin: Cargo,
-    rustc_bin: &Path,
     update_request: &Option<CargoUpdateRequest>,
 ) -> Result<cargo_lock::Lockfile> {
     let manifest_dir = manifest_path
@@ -463,7 +463,7 @@
     }
 
     // Generate the new lockfile
-    let lockfile = LockGenerator::new(cargo_bin, PathBuf::from(rustc_bin)).generate(
+    let lockfile = LockGenerator::new(cargo_bin).generate(
         manifest_path.as_path_buf(),
         existing_lock,
         update_request,
@@ -481,13 +481,12 @@
 mod test {
     use super::*;
 
-    use std::path::PathBuf;
-
     #[test]
     fn deserialize_splicing_manifest() {
         let runfiles = runfiles::Runfiles::create().unwrap();
-        let path = runfiles.rlocation(
-            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json",
+        let path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json"
         );
 
         let content = std::fs::read_to_string(path).unwrap();
@@ -569,8 +568,9 @@
     #[test]
     fn splicing_manifest_resolve() {
         let runfiles = runfiles::Runfiles::create().unwrap();
-        let path = runfiles.rlocation(
-            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json",
+        let path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json"
         );
 
         let content = std::fs::read_to_string(path).unwrap();
@@ -613,14 +613,18 @@
     #[test]
     fn splicing_metadata_workspace_path() {
         let runfiles = runfiles::Runfiles::create().unwrap();
-        let workspace_manifest_path = runfiles
-            .rlocation("rules_rust/crate_universe/test_data/metadata/workspace_path/Cargo.toml");
-        let workspace_path = workspace_manifest_path.parent().unwrap().to_path_buf();
-        let child_a_manifest_path = runfiles.rlocation(
-            "rules_rust/crate_universe/test_data/metadata/workspace_path/child_a/Cargo.toml",
+        let workspace_manifest_path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/metadata/workspace_path/Cargo.toml"
         );
-        let child_b_manifest_path = runfiles.rlocation(
-            "rules_rust/crate_universe/test_data/metadata/workspace_path/child_b/Cargo.toml",
+        let workspace_path = workspace_manifest_path.parent().unwrap().to_path_buf();
+        let child_a_manifest_path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/metadata/workspace_path/child_a/Cargo.toml"
+        );
+        let child_b_manifest_path = runfiles::rlocation!(
+            runfiles,
+            "rules_rust/crate_universe/test_data/metadata/workspace_path/child_b/Cargo.toml"
         );
         let manifest = SplicingManifest {
             direct_packages: BTreeMap::new(),
diff --git a/crate_universe/src/splicing/cargo_config.rs b/crate_universe/src/splicing/cargo_config.rs
index e99345a..126aa2c 100644
--- a/crate_universe/src/splicing/cargo_config.rs
+++ b/crate_universe/src/splicing/cargo_config.rs
@@ -163,8 +163,6 @@
 mod test {
     use super::*;
 
-    use std::fs;
-
     #[test]
     fn registry_settings() {
         let temp_dir = tempfile::tempdir().unwrap();
diff --git a/crate_universe/src/splicing/crate_index_lookup.rs b/crate_universe/src/splicing/crate_index_lookup.rs
index 2cc5134..72f404b 100644
--- a/crate_universe/src/splicing/crate_index_lookup.rs
+++ b/crate_universe/src/splicing/crate_index_lookup.rs
@@ -66,8 +66,9 @@
         {
             let _e = EnvVarResetter::set(
                 "CARGO_HOME",
-                runfiles.rlocation(
-                    "rules_rust/crate_universe/test_data/crate_indexes/lazy_static/cargo_home",
+                runfiles::rlocation!(
+                    runfiles,
+                    "rules_rust/crate_universe/test_data/crate_indexes/lazy_static/cargo_home"
                 ),
             );
 
@@ -95,7 +96,8 @@
             );
         }
         {
-            let _e = EnvVarResetter::set("CARGO_HOME", runfiles.rlocation("rules_rust/crate_universe/test_data/crate_indexes/rewritten_lazy_static/cargo_home"));
+            let _e = EnvVarResetter::set("CARGO_HOME", 
+                runfiles::rlocation!(runfiles, "rules_rust/crate_universe/test_data/crate_indexes/rewritten_lazy_static/cargo_home"));
 
             let index = CrateIndexLookup::Http(
                 crates_index::SparseIndex::from_url("sparse+https://index.crates.io/").unwrap(),
diff --git a/crate_universe/src/splicing/splicer.rs b/crate_universe/src/splicing/splicer.rs
index 4093ab6..bd6cbca 100644
--- a/crate_universe/src/splicing/splicer.rs
+++ b/crate_universe/src/splicing/splicer.rs
@@ -5,13 +5,13 @@
 use std::path::{Path, PathBuf};
 
 use anyhow::{bail, Context, Result};
-use cargo_metadata::MetadataCommand;
 use cargo_toml::{Dependency, Manifest};
 use normpath::PathExt;
 
 use crate::config::CrateId;
-use crate::splicing::{SplicedManifest, SplicingManifest};
+use crate::splicing::{Cargo, SplicedManifest, SplicingManifest};
 use crate::utils::starlark::Label;
+use crate::utils::symlink::{remove_symlink, symlink};
 
 use super::{read_manifest, DirectPackageManifest, WorkspaceMetadata};
 
@@ -45,7 +45,7 @@
     pub(crate) fn new(
         manifests: &'a BTreeMap<PathBuf, Manifest>,
         splicing_manifest: &'a SplicingManifest,
-        cargo: &Path,
+        cargo_bin: &Cargo,
     ) -> Result<Self> {
         // First check for any workspaces in the provided manifests
         let workspace_owned: BTreeMap<&PathBuf, &Manifest> = manifests
@@ -75,10 +75,8 @@
             if workspace_roots.is_empty() {
                 let sorted_manifests: BTreeSet<_> = manifests.keys().collect();
                 for manifest_path in sorted_manifests {
-                    let metadata_result = MetadataCommand::new()
-                        .cargo_path(cargo)
-                        .current_dir(manifest_path.parent().unwrap())
-                        .manifest_path(manifest_path)
+                    let metadata_result = cargo_bin
+                        .metadata_command_with_options(manifest_path, Vec::new())?
                         .no_deps()
                         .exec();
                     if let Ok(metadata) = metadata_result {
@@ -185,6 +183,7 @@
     }
 
     /// Performs splicing based on the current variant.
+    #[tracing::instrument(skip_all)]
     pub(crate) fn splice(&self, workspace_dir: &Path) -> Result<SplicedManifest> {
         match self {
             SplicerKind::Workspace {
@@ -205,6 +204,7 @@
     }
 
     /// Implementation for splicing Cargo workspaces
+    #[tracing::instrument(skip_all)]
     fn splice_workspace(
         workspace_dir: &Path,
         path: &&PathBuf,
@@ -241,6 +241,7 @@
     }
 
     /// Implementation for splicing individual Cargo packages
+    #[tracing::instrument(skip_all)]
     fn splice_package(
         workspace_dir: &Path,
         path: &&PathBuf,
@@ -283,6 +284,7 @@
     }
 
     /// Implementation for splicing together multiple Cargo packages/workspaces
+    #[tracing::instrument(skip_all)]
     fn splice_multi_package(
         workspace_dir: &Path,
         manifests: &&BTreeMap<PathBuf, Manifest>,
@@ -478,7 +480,7 @@
         for (name, details) in direct_packages_manifest.iter() {
             manifest.dependencies.insert(
                 name.clone(),
-                cargo_toml::Dependency::Detailed(details.clone()),
+                cargo_toml::Dependency::Detailed(Box::new(details.clone())),
             );
         }
 
@@ -544,12 +546,11 @@
     }
 
     /// Build a new workspace root
-    pub(crate) fn splice_workspace(&self, cargo: &Path) -> Result<SplicedManifest> {
+    pub(crate) fn splice_workspace(&self, cargo: &Cargo) -> Result<SplicedManifest> {
         SplicerKind::new(&self.manifests, &self.splicing_manifest, cargo)?
             .splice(&self.workspace_dir)
     }
 }
-
 const DEFAULT_SPLICING_PACKAGE_NAME: &str = "direct-cargo-bazel-deps";
 const DEFAULT_SPLICING_PACKAGE_VERSION: &str = "0.0.1";
 
@@ -654,42 +655,22 @@
         fs::create_dir_all(parent)?;
     }
 
+    // Write an intermediate manifest so we can run `cargo metadata` to list all the transitive proc-macros.
+    write_manifest(path, &manifest)?;
+
+    Ok(())
+}
+
+pub(crate) fn write_manifest(path: &Path, manifest: &cargo_toml::Manifest) -> Result<()> {
     // TODO(https://gitlab.com/crates.rs/cargo_toml/-/issues/3)
     let value = toml::Value::try_from(manifest)?;
-    fs::write(path, toml::to_string(&value)?)
-        .context(format!("Failed to write manifest to {}", path.display()))
-}
-
-/// Create a symlink file on unix systems
-#[cfg(target_family = "unix")]
-fn symlink(src: &Path, dest: &Path) -> Result<(), std::io::Error> {
-    std::os::unix::fs::symlink(src, dest)
-}
-
-/// Create a symlink file on windows systems
-#[cfg(target_family = "windows")]
-fn symlink(src: &Path, dest: &Path) -> Result<(), std::io::Error> {
-    if src.is_dir() {
-        std::os::windows::fs::symlink_dir(src, dest)
-    } else {
-        std::os::windows::fs::symlink_file(src, dest)
-    }
-}
-
-/// Create a symlink file on unix systems
-#[cfg(target_family = "unix")]
-fn remove_symlink(path: &Path) -> Result<(), std::io::Error> {
-    fs::remove_file(path)
-}
-
-/// Create a symlink file on windows systems
-#[cfg(target_family = "windows")]
-fn remove_symlink(path: &Path) -> Result<(), std::io::Error> {
-    if path.is_dir() {
-        fs::remove_dir(path)
-    } else {
-        fs::remove_file(path)
-    }
+    let content = toml::to_string(&value)?;
+    tracing::debug!(
+        "Writing Cargo manifest '{}':\n```toml\n{}```",
+        path.display(),
+        content
+    );
+    fs::write(path, content).context(format!("Failed to write manifest to {}", path.display()))
 }
 
 /// Symlinks the root contents of a source directory into a destination directory
@@ -747,15 +728,13 @@
 mod test {
     use super::*;
 
-    use std::fs;
     use std::fs::File;
     use std::str::FromStr;
 
-    use cargo_metadata::{MetadataCommand, PackageId};
+    use cargo_metadata::PackageId;
     use maplit::btreeset;
 
     use crate::splicing::Cargo;
-    use crate::utils::starlark::Label;
 
     /// Clone and compare two items after calling `.sort()` on them.
     macro_rules! assert_sort_eq {
@@ -768,12 +747,26 @@
         };
     }
 
+    fn should_skip_network_test() -> bool {
+        // Some test cases require network access to build pull crate metadata
+        // so that we can actually run `cargo tree`. However, RBE (and perhaps
+        // other environments) disallow or don't support this. In those cases,
+        // we just skip this test case.
+        use std::net::ToSocketAddrs;
+        if "github.com:443".to_socket_addrs().is_err() {
+            eprintln!("This test case requires network access.");
+            true
+        } else {
+            false
+        }
+    }
+
     /// Get cargo and rustc binaries the Bazel way
     #[cfg(not(feature = "cargo"))]
     fn get_cargo_and_rustc_paths() -> (PathBuf, PathBuf) {
-        let runfiles = runfiles::Runfiles::create().unwrap();
-        let cargo_path = runfiles.rlocation(concat!("rules_rust/", env!("CARGO")));
-        let rustc_path = runfiles.rlocation(concat!("rules_rust/", env!("RUSTC")));
+        let r = runfiles::Runfiles::create().unwrap();
+        let cargo_path = runfiles::rlocation!(r, concat!("rules_rust/", env!("CARGO")));
+        let rustc_path = runfiles::rlocation!(r, concat!("rules_rust/", env!("RUSTC")));
 
         (cargo_path, rustc_path)
     }
@@ -784,29 +777,15 @@
         (PathBuf::from("cargo"), PathBuf::from("rustc"))
     }
 
-    fn cargo() -> PathBuf {
-        get_cargo_and_rustc_paths().0
+    fn cargo() -> Cargo {
+        let (cargo, rustc) = get_cargo_and_rustc_paths();
+        Cargo::new(cargo, rustc)
     }
 
     fn generate_metadata(manifest_path: &Path) -> cargo_metadata::Metadata {
-        let manifest_dir = manifest_path.parent().unwrap_or_else(|| {
-            panic!(
-                "The given manifest has no parent directory: {}",
-                manifest_path.display()
-            )
-        });
-
-        let (cargo_path, rustc_path) = get_cargo_and_rustc_paths();
-
-        MetadataCommand::new()
-            .cargo_path(cargo_path)
-            // Cargo detects config files based on `pwd` when running so
-            // to ensure user provided Cargo config files are used, it's
-            // critical to set the working directory to the manifest dir.
-            .current_dir(manifest_dir)
-            .manifest_path(manifest_path)
-            .other_options(["--offline".to_owned()])
-            .env("RUSTC", rustc_path)
+        cargo()
+            .metadata_command_with_options(manifest_path, vec!["--offline".to_owned()])
+            .unwrap()
             .exec()
             .unwrap()
     }
@@ -857,7 +836,7 @@
                             "url": "https://crates.io/"
                         }
                     },
-                    "features": {}
+                    "tree_metadata": {}
                 }
             })
         } else {
@@ -865,7 +844,7 @@
                 "cargo-bazel": {
                     "package_prefixes": {},
                     "sources": {},
-                    "features": {}
+                    "tree_metadata": {}
                 }
             })
         };
@@ -1080,8 +1059,7 @@
                 .unwrap();
 
         // Locate cargo
-        let (_, cargo_path) = get_cargo_and_rustc_paths();
-        let cargo = Cargo::new(cargo_path);
+        let cargo = cargo();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1124,8 +1102,7 @@
                 .unwrap();
 
         // Locate cargo
-        let (_, cargo_path) = get_cargo_and_rustc_paths();
-        let cargo = Cargo::new(cargo_path);
+        let cargo = cargo();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1316,8 +1293,7 @@
                 .unwrap();
 
         // Locate cargo
-        let (_, cargo_path) = get_cargo_and_rustc_paths();
-        let cargo = Cargo::new(cargo_path);
+        let cargo = cargo();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1365,8 +1341,7 @@
         );
 
         // Locate cargo
-        let (_, cargo_path) = get_cargo_and_rustc_paths();
-        let cargo = Cargo::new(cargo_path);
+        let cargo = cargo();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1416,8 +1391,7 @@
         );
 
         // Locate cargo
-        let (_, cargo_path) = get_cargo_and_rustc_paths();
-        let cargo = Cargo::new(cargo_path);
+        let cargo = cargo();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1442,14 +1416,18 @@
 
     #[test]
     fn splice_multi_package_with_direct_deps() {
-        let (mut splicing_manifest, _cache_dir) = mock_splicing_manifest_with_multi_package();
+        if should_skip_network_test() {
+            return;
+        }
+
+        let (mut splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
 
         // Add a "direct dependency" entry
         splicing_manifest.direct_packages.insert(
-            "fake_pkg".to_owned(),
+            "syn".to_owned(),
             cargo_toml::DependencyDetail {
-                version: Some("1.2.3".to_owned()),
-                ..cargo_toml::DependencyDetail::default()
+                version: Some("1.0.109".to_owned()),
+                ..syn_dependency_detail()
             },
         );
 
@@ -1458,7 +1436,7 @@
         let workspace_manifest =
             Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
                 .unwrap()
-                .splice_workspace(&cargo())
+                .splice_workspace(&cargo().with_cargo_home(cache_dir.path().to_owned()))
                 .unwrap();
 
         // Check the default resolver version
@@ -1473,14 +1451,18 @@
 
     #[test]
     fn splice_multi_package_with_patch() {
+        if should_skip_network_test() {
+            return;
+        }
+
         let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
 
         // Generate a patch entry
         let expected = cargo_toml::PatchSet::from([(
-            "registry".to_owned(),
+            "crates-io".to_owned(),
             BTreeMap::from([(
-                "foo".to_owned(),
-                cargo_toml::Dependency::Simple("1.2.3".to_owned()),
+                "syn".to_owned(),
+                cargo_toml::Dependency::Detailed(Box::new(syn_dependency_detail())),
             )]),
         )]);
 
@@ -1496,49 +1478,7 @@
         let workspace_manifest =
             Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
                 .unwrap()
-                .splice_workspace(&cargo())
-                .unwrap();
-
-        // Ensure the patches match the expected value
-        let cargo_manifest = cargo_toml::Manifest::from_str(
-            &fs::read_to_string(workspace_manifest.as_path_buf()).unwrap(),
-        )
-        .unwrap();
-        assert_eq!(expected, cargo_manifest.patch);
-    }
-
-    #[test]
-    fn splice_multi_package_with_multiple_patch_registries() {
-        let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
-
-        let mut expected = cargo_toml::PatchSet::new();
-
-        for pkg in ["pkg_a", "pkg_b"] {
-            // Generate a patch entry
-            let new_patch = cargo_toml::PatchSet::from([(
-                format!("{pkg}_registry"),
-                BTreeMap::from([(
-                    "foo".to_owned(),
-                    cargo_toml::Dependency::Simple("1.2.3".to_owned()),
-                )]),
-            )]);
-            expected.extend(new_patch.clone());
-
-            // Insert the patch entry to the manifests
-            let manifest_path = cache_dir.as_ref().join(pkg).join("Cargo.toml");
-            let mut manifest =
-                cargo_toml::Manifest::from_str(&fs::read_to_string(&manifest_path).unwrap())
-                    .unwrap();
-            manifest.patch.extend(new_patch);
-            fs::write(manifest_path, toml::to_string(&manifest).unwrap()).unwrap();
-        }
-
-        // Splice the workspace
-        let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest =
-            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
-                .unwrap()
-                .splice_workspace(&cargo())
+                .splice_workspace(&cargo().with_cargo_home(cache_dir.path().to_owned()))
                 .unwrap();
 
         // Ensure the patches match the expected value
@@ -1551,31 +1491,41 @@
 
     #[test]
     fn splice_multi_package_with_merged_patch_registries() {
+        if should_skip_network_test() {
+            return;
+        }
+
         let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
 
         let expected = cargo_toml::PatchSet::from([(
-            "registry".to_owned(),
+            "crates-io".to_owned(),
             cargo_toml::DepsSet::from([
                 (
-                    "foo-pkg_a".to_owned(),
-                    cargo_toml::Dependency::Simple("1.2.3".to_owned()),
+                    "syn".to_owned(),
+                    cargo_toml::Dependency::Detailed(Box::new(syn_dependency_detail())),
                 ),
                 (
-                    "foo-pkg_b".to_owned(),
-                    cargo_toml::Dependency::Simple("1.2.3".to_owned()),
+                    "lazy_static".to_owned(),
+                    cargo_toml::Dependency::Detailed(Box::new(lazy_static_dependency_detail())),
                 ),
             ]),
         )]);
 
         for pkg in ["pkg_a", "pkg_b"] {
             // Generate a patch entry
-            let new_patch = cargo_toml::PatchSet::from([(
-                "registry".to_owned(),
-                BTreeMap::from([(
-                    format!("foo-{pkg}"),
-                    cargo_toml::Dependency::Simple("1.2.3".to_owned()),
-                )]),
-            )]);
+            let mut map = BTreeMap::new();
+            if pkg == "pkg_a" {
+                map.insert(
+                    "syn".to_owned(),
+                    cargo_toml::Dependency::Detailed(Box::new(syn_dependency_detail())),
+                );
+            } else {
+                map.insert(
+                    "lazy_static".to_owned(),
+                    cargo_toml::Dependency::Detailed(Box::new(lazy_static_dependency_detail())),
+                );
+            }
+            let new_patch = cargo_toml::PatchSet::from([("crates-io".to_owned(), map)]);
 
             // Insert the patch entry to the manifests
             let manifest_path = cache_dir.as_ref().join(pkg).join("Cargo.toml");
@@ -1591,7 +1541,7 @@
         let workspace_manifest =
             Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
                 .unwrap()
-                .splice_workspace(&cargo())
+                .splice_workspace(&cargo().with_cargo_home(cache_dir.path().to_owned()))
                 .unwrap();
 
         // Ensure the patches match the expected value
@@ -1604,23 +1554,27 @@
 
     #[test]
     fn splice_multi_package_with_merged_identical_patch_registries() {
+        if should_skip_network_test() {
+            return;
+        }
+
         let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
 
         let expected = cargo_toml::PatchSet::from([(
-            "registry".to_owned(),
+            "crates-io".to_owned(),
             cargo_toml::DepsSet::from([(
-                "foo".to_owned(),
-                cargo_toml::Dependency::Simple("1.2.3".to_owned()),
+                "syn".to_owned(),
+                cargo_toml::Dependency::Detailed(Box::new(syn_dependency_detail())),
             )]),
         )]);
 
         for pkg in ["pkg_a", "pkg_b"] {
             // Generate a patch entry
             let new_patch = cargo_toml::PatchSet::from([(
-                "registry".to_owned(),
+                "crates-io".to_owned(),
                 BTreeMap::from([(
-                    "foo".to_owned(),
-                    cargo_toml::Dependency::Simple("1.2.3".to_owned()),
+                    "syn".to_owned(),
+                    cargo_toml::Dependency::Detailed(Box::new(syn_dependency_detail())),
                 )]),
             )]);
 
@@ -1638,7 +1592,7 @@
         let workspace_manifest =
             Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
                 .unwrap()
-                .splice_workspace(&cargo())
+                .splice_workspace(&cargo().with_cargo_home(cache_dir.path().to_owned()))
                 .unwrap();
 
         // Ensure the patches match the expected value
@@ -1977,4 +1931,20 @@
         std::fs::create_dir_all(path.parent().unwrap()).unwrap();
         std::fs::write(path, []).unwrap();
     }
+
+    fn syn_dependency_detail() -> cargo_toml::DependencyDetail {
+        cargo_toml::DependencyDetail {
+            git: Some("https://github.com/dtolnay/syn.git".to_owned()),
+            tag: Some("1.0.109".to_owned()),
+            ..cargo_toml::DependencyDetail::default()
+        }
+    }
+
+    fn lazy_static_dependency_detail() -> cargo_toml::DependencyDetail {
+        cargo_toml::DependencyDetail {
+            git: Some("https://github.com/rust-lang-nursery/lazy-static.rs.git".to_owned()),
+            tag: Some("1.5.0".to_owned()),
+            ..cargo_toml::DependencyDetail::default()
+        }
+    }
 }
diff --git a/crate_universe/src/test.rs b/crate_universe/src/test.rs
index 989472b..88da0a6 100644
--- a/crate_universe/src/test.rs
+++ b/crate_universe/src/test.rs
@@ -139,6 +139,14 @@
         .unwrap()
     }
 
+    pub(crate) fn example_proc_macro_dep() -> cargo_metadata::Metadata {
+        serde_json::from_str(include_str!(concat!(
+            env!("CARGO_MANIFEST_DIR"),
+            "/test_data/metadata/example_proc_macro_dep/metadata.json"
+        )))
+        .unwrap()
+    }
+
     pub(crate) fn git_repos() -> cargo_metadata::Metadata {
         serde_json::from_str(include_str!(concat!(
             env!("CARGO_MANIFEST_DIR"),
@@ -154,6 +162,14 @@
         )))
         .unwrap()
     }
+
+    pub(crate) fn resolver_2_deps_metadata() -> cargo_metadata::Metadata {
+        serde_json::from_str(include_str!(concat!(
+            env!("CARGO_MANIFEST_DIR"),
+            "/test_data/metadata/resolver_2_deps/metadata.json"
+        )))
+        .unwrap()
+    }
 }
 
 pub(crate) mod lockfile {
diff --git a/crate_universe/src/utils.rs b/crate_universe/src/utils.rs
index ca168f2..d625e05 100644
--- a/crate_universe/src/utils.rs
+++ b/crate_universe/src/utils.rs
@@ -1,10 +1,14 @@
 //! Common utilities
 
 pub(crate) mod starlark;
+pub(crate) mod symlink;
 pub(crate) mod target_triple;
 
 pub(crate) const CRATES_IO_INDEX_URL: &str = "https://github.com/rust-lang/crates.io-index";
 
+use std::collections::BTreeMap;
+use std::path::{Path, PathBuf};
+
 /// Convert a string into a valid crate module name by applying transforms to invalid characters
 pub(crate) fn sanitize_module_name(name: &str) -> String {
     name.replace('-', "_")
@@ -16,3 +20,89 @@
 pub(crate) fn sanitize_repository_name(name: &str) -> String {
     name.replace('+', "-")
 }
+
+/// Vendored crates are generated by cargo itself in `src/metadata.rs` in the
+/// `VendorGenerator::generate()` method.  This means that the semver metadata will
+/// always contain a (+) symbol, which is not compatible with bazel's labels.  
+/// This function will rename the cargo vendor generated file paths to be compatible with bazel
+/// labels by simply replacing the (+) with a (-). If this file is called by any other cli mod,
+/// it just simply joins the out dir to the path
+pub(crate) fn normalize_cargo_file_paths(
+    outputs: BTreeMap<PathBuf, String>,
+    out_dir: &Path,
+) -> BTreeMap<PathBuf, String> {
+    outputs
+        .into_iter()
+        .map(|(path, content)| {
+            let path = out_dir.join(path);
+            // Get Path Str and Parent Path Str so we can rename the root file
+            let original_path_str = path.to_str().expect("All file paths should be strings");
+            let original_parent_path_str = path
+                .parent()
+                .expect("Should have parent")
+                .to_str()
+                .expect("All file paths should be strings");
+
+            let new_path = if original_parent_path_str.contains('+') {
+                let new_parent_file_path = sanitize_repository_name(original_parent_path_str);
+                std::fs::rename(original_parent_path_str, new_parent_file_path)
+                    .expect("Could not rename paths");
+                PathBuf::from(&original_path_str.replace('+', "-"))
+            } else {
+                path
+            };
+
+            (new_path, content)
+        })
+        .collect()
+}
+
+#[cfg(test)]
+mod test {
+    use super::*;
+
+    #[test]
+    fn test_sanitize_repository_name() {
+        let name = "anyhow-1.0.0+semver_meta";
+        let got = sanitize_repository_name(name);
+        assert_eq!(got, String::from("anyhow-1.0.0-semver_meta"));
+    }
+
+    #[test]
+    fn test_sanitize_repository_name_no_change() {
+        let name = "tokio-1.20.0";
+        let got = sanitize_repository_name(name);
+        assert_eq!(got, String::from("tokio-1.20.0"));
+    }
+
+    #[test]
+    fn test_normalize_cargo_file_paths() {
+        let mut outputs = BTreeMap::new();
+        outputs.insert(
+            PathBuf::from("libbpf-sys-1.3.0+v1.3.0/BUILD.bazel"),
+            "contents".into(),
+        );
+
+        let outdir = tempfile::tempdir().unwrap();
+        // create dir to mimic cargo vendor
+        std::fs::create_dir_all(outdir.path().join("libbpf-sys-1.3.0+v1.3.0")).unwrap();
+
+        let got = normalize_cargo_file_paths(outputs, outdir.path());
+        for output in got.into_keys() {
+            assert!(!output.to_str().unwrap().contains('+'));
+        }
+    }
+
+    #[test]
+    fn test_normalize_cargo_file_paths_no_rename() {
+        let mut outputs = BTreeMap::new();
+        outputs.insert(PathBuf::from("tokio-1.30.0/BUILD.bazel"), "contents".into());
+
+        let outdir = tempfile::tempdir().unwrap();
+
+        let got = normalize_cargo_file_paths(outputs, outdir.path());
+        for output in got.into_keys() {
+            assert!(!output.to_str().unwrap().contains('+'));
+        }
+    }
+}
diff --git a/crate_universe/src/utils/starlark.rs b/crate_universe/src/utils/starlark.rs
index 3b0ea53..55ec583 100644
--- a/crate_universe/src/utils/starlark.rs
+++ b/crate_universe/src/utils/starlark.rs
@@ -114,6 +114,8 @@
     pub(crate) linker_script: Option<String>,
     #[serde(skip_serializing_if = "Option::is_none")]
     pub(crate) links: Option<String>,
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub(crate) pkg_name: Option<String>,
     #[serde(skip_serializing_if = "SelectSet::is_empty")]
     pub(crate) proc_macro_deps: SelectSet<Label>,
     #[serde(skip_serializing_if = "SelectScalar::is_empty")]
diff --git a/crate_universe/src/utils/starlark/glob.rs b/crate_universe/src/utils/starlark/glob.rs
index c8bf4bf..eee50c3 100644
--- a/crate_universe/src/utils/starlark/glob.rs
+++ b/crate_universe/src/utils/starlark/glob.rs
@@ -13,9 +13,9 @@
 }
 
 impl Glob {
-    pub(crate) fn new_rust_srcs() -> Self {
+    pub(crate) fn new_rust_srcs(allow_empty: bool) -> Self {
         Self {
-            allow_empty: false,
+            allow_empty,
             include: BTreeSet::from(["**/*.rs".to_owned()]),
             exclude: BTreeSet::new(),
         }
diff --git a/crate_universe/src/utils/starlark/label.rs b/crate_universe/src/utils/starlark/label.rs
index 1315169..30e1d23 100644
--- a/crate_universe/src/utils/starlark/label.rs
+++ b/crate_universe/src/utils/starlark/label.rs
@@ -4,6 +4,7 @@
 
 use anyhow::{anyhow, bail, Context, Result};
 use camino::Utf8Path;
+use once_cell::sync::OnceCell;
 use regex::Regex;
 use serde::de::Visitor;
 use serde::{Deserialize, Serialize, Serializer};
@@ -63,8 +64,12 @@
     type Err = anyhow::Error;
 
     fn from_str(s: &str) -> Result<Self, Self::Err> {
-        let re = Regex::new(r"^(@@?[\w\d\-_\.~]*)?(//)?([\w\d\-_\./+]+)?(:([\+\w\d\-_\./]+))?$")?;
-        let cap = re
+        static RE: OnceCell<Regex> = OnceCell::new();
+        let re = RE.get_or_try_init(|| {
+            Regex::new(r"^(@@?[\w\d\-_\.~]*)?(//)?([\w\d\-_\./+]+)?(:([\+\w\d\-_\./]+))?$")
+        });
+
+        let cap = re?
             .captures(s)
             .with_context(|| format!("Failed to parse label from string: {s}"))?;
 
@@ -194,7 +199,8 @@
             }
             if workspace_root.is_none()
                 && (ancestor.join("WORKSPACE").exists()
-                    || ancestor.join("WORKSPACE.bazel").exists())
+                    || ancestor.join("WORKSPACE.bazel").exists()
+                    || ancestor.join("MODULE.bazel").exists())
             {
                 workspace_root = Some(ancestor);
                 break;
diff --git a/crate_universe/src/utils/starlark/select.rs b/crate_universe/src/utils/starlark/select.rs
index b2010bf..43d54fa 100644
--- a/crate_universe/src/utils/starlark/select.rs
+++ b/crate_universe/src/utils/starlark/select.rs
@@ -1,5 +1,4 @@
 use std::collections::BTreeSet;
-use std::iter::FromIterator;
 
 use serde::ser::Serializer;
 use serde::Serialize;
diff --git a/crate_universe/src/utils/symlink.rs b/crate_universe/src/utils/symlink.rs
new file mode 100644
index 0000000..884eade
--- /dev/null
+++ b/crate_universe/src/utils/symlink.rs
@@ -0,0 +1,33 @@
+use std::path::Path;
+
+/// Create a symlink file on unix systems
+#[cfg(target_family = "unix")]
+pub(crate) fn symlink(src: &Path, dest: &Path) -> Result<(), std::io::Error> {
+    std::os::unix::fs::symlink(src, dest)
+}
+
+/// Create a symlink file on windows systems
+#[cfg(target_family = "windows")]
+pub(crate) fn symlink(src: &Path, dest: &Path) -> Result<(), std::io::Error> {
+    if src.is_dir() {
+        std::os::windows::fs::symlink_dir(src, dest)
+    } else {
+        std::os::windows::fs::symlink_file(src, dest)
+    }
+}
+
+/// Create a symlink file on unix systems
+#[cfg(target_family = "unix")]
+pub(crate) fn remove_symlink(path: &Path) -> Result<(), std::io::Error> {
+    std::fs::remove_file(path)
+}
+
+/// Create a symlink file on windows systems
+#[cfg(target_family = "windows")]
+pub(crate) fn remove_symlink(path: &Path) -> Result<(), std::io::Error> {
+    if path.is_dir() {
+        std::fs::remove_dir(path)
+    } else {
+        std::fs::remove_file(path)
+    }
+}
diff --git a/crate_universe/test_data/cargo_bazel_lockfile/README.md b/crate_universe/test_data/cargo_bazel_lockfile/README.md
new file mode 100644
index 0000000..ced42c7
--- /dev/null
+++ b/crate_universe/test_data/cargo_bazel_lockfile/README.md
@@ -0,0 +1,13 @@
+# Catalog of testdata files
+
+## `multi_package-cargo-bazel-lock.json`
+
+This was copied from `examples/crate_universe/multi_package/cargo-bazel-lock.json` at commit 53daac71c0755680c29f4c55ac5238cc063e8b31.
+
+It's intended to be an example of a realistic and meaningfully complex lockfile.
+
+If this file needs to change in order to make the tests using it pass, it's likely a breaking change has been made to either the lockfile format or the lockfile parser.
+
+Ideally we should avoid breaking changes in the lockfile parser, so ideally future tests would _add new_ test lockfiles (and this one will remain static to show our API can still parse historic lockfiles), rather than modify existing lockfiles.
+
+We don't formally make strong guarantees around API stability here, so it's ok to need to change this file if really needed, but if it's easy to preserve the compatibility we'd prefer to.
diff --git a/crate_universe/test_data/metadata/aliases/Cargo.lock b/crate_universe/test_data/metadata/aliases/Cargo.lock
index fd659b2..3293225 100644
--- a/crate_universe/test_data/metadata/aliases/Cargo.lock
+++ b/crate_universe/test_data/metadata/aliases/Cargo.lock
@@ -3,23 +3,240 @@
 version = 3
 
 [[package]]
+name = "addr"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a93b8a41dbe230ad5087cc721f8d41611de654542180586b315d9f4cf6b72bef"
+dependencies = [
+ "psl-types",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "aliases"
 version = "0.1.0"
 dependencies = [
  "log 0.3.9",
- "log 0.4.14",
+ "log 0.4.21",
  "names 0.12.1-dev",
  "names 0.13.0",
+ "surrealdb",
  "value-bag",
 ]
 
 [[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "any_ascii"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c"
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+
+[[package]]
+name = "argon2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
+dependencies = [
+ "base64ct",
+ "blake2",
+ "cpufeatures",
+ "password-hash",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "ascii-canvas"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+dependencies = [
+ "term",
+]
+
+[[package]]
+name = "async-channel"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10b3e585719c2358d2660232671ca8ca4ddb4be4ce8a1842d6c2dc8685303316"
+dependencies = [
+ "async-lock",
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+
+[[package]]
+name = "async-trait"
+version = "0.1.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "async_io_stream"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c"
+dependencies = [
+ "futures",
+ "pharos",
+ "rustc_version",
+]
+
+[[package]]
+name = "atomic"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
+
+[[package]]
+name = "atomic-polyfill"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
+dependencies = [
+ "critical-section",
+]
+
+[[package]]
 name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.19",
  "libc",
  "winapi",
 ]
@@ -31,27 +248,307 @@
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "backtrace"
+version = "0.3.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "bcrypt"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7"
+dependencies = [
+ "base64 0.22.0",
+ "blowfish",
+ "getrandom",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "blake2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blowfish"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
+dependencies = [
+ "byteorder",
+ "cipher",
+]
+
+[[package]]
+name = "borsh"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0901fc8eb0aca4c83be0106d6f2db17d86a08dfc2c25f0e84464bf381158add6"
+dependencies = [
+ "borsh-derive",
+ "cfg_aliases",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51670c3aa053938b0ee3bd67c3817e471e626151131b934038e83c5bf8de48f5"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+ "syn_derive",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+
+[[package]]
+name = "cedar-policy"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d91e3b10a0f7f2911774d5e49713c4d25753466f9e11d1cd2ec627f8a2dc857"
+dependencies = [
+ "cedar-policy-core",
+ "cedar-policy-validator",
+ "itertools 0.10.5",
+ "lalrpop-util",
+ "ref-cast",
+ "serde",
+ "serde_json",
+ "smol_str",
+ "thiserror",
+]
+
+[[package]]
+name = "cedar-policy-core"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd2315591c6b7e18f8038f0a0529f254235fd902b6c217aabc04f2459b0d9995"
+dependencies = [
+ "either",
+ "ipnet",
+ "itertools 0.10.5",
+ "lalrpop",
+ "lalrpop-util",
+ "lazy_static",
+ "miette",
+ "regex",
+ "rustc_lexer",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "smol_str",
+ "stacker",
+ "thiserror",
+]
+
+[[package]]
+name = "cedar-policy-validator"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e756e1b2a5da742ed97e65199ad6d0893e9aa4bd6b34be1de9e70bd1e6adc7df"
+dependencies = [
+ "cedar-policy-core",
+ "itertools 0.10.5",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "smol_str",
+ "stacker",
+ "thiserror",
+ "unicode-security",
+]
+
+[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chrono"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+]
+
+[[package]]
 name = "clap"
 version = "3.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ced1892c55c910c1219e98d6fc8d71f6bddba7905866ce740066d8bfea859312"
 dependencies = [
  "atty",
- "bitflags",
+ "bitflags 1.3.2",
  "clap_derive",
- "indexmap",
+ "indexmap 1.8.0",
  "lazy_static",
  "os_str_bytes",
  "strsim",
@@ -69,7 +566,75 @@
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "critical-section"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
 ]
 
 [[package]]
@@ -79,18 +644,491 @@
 checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
 dependencies = [
  "quote",
- "syn",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "der"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
+dependencies = [
+ "const-oid",
+ "pem-rfc7468",
+ "zeroize",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+ "serde",
+]
+
+[[package]]
+name = "deunicode"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94"
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "const-oid",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dmp"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfaa1135a34d26e5cc5b4927a8935af887d4f30a5653a797c33b9a4222beb6d9"
+dependencies = [
+ "urlencoding",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "earcutr"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01"
+dependencies = [
+ "itertools 0.11.0",
+ "num-traits",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "ena"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
+dependencies = [
+ "log 0.4.21",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "endian-type"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "float_next_after"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
+
+[[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "nanorand",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fst"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a"
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-concurrency"
+version = "7.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b590a729e1cbaf9ae3ec294143ea034d93cbb1de01c884d04bcd0af8b613d02"
+dependencies = [
+ "bitvec",
+ "futures-core",
+ "pin-project",
+ "slab",
+ "smallvec",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fuzzy-matcher"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
+dependencies = [
+ "thread_local",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "geo"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1645cf1d7fea7dac1a66f7357f3df2677ada708b8d9db8e9b043878930095a96"
+dependencies = [
+ "earcutr",
+ "float_next_after",
+ "geo-types",
+ "geographiclib-rs",
+ "log 0.4.21",
+ "num-traits",
+ "robust",
+ "rstar",
+ "serde",
+]
+
+[[package]]
+name = "geo"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4841b40fdbccd4b7042bd6195e4de91da54af34c50632e371bcbfcdfb558b873"
+dependencies = [
+ "earcutr",
+ "float_next_after",
+ "geo-types",
+ "geographiclib-rs",
+ "log 0.4.21",
+ "num-traits",
+ "robust",
+ "rstar",
+ "serde",
+ "spade",
+]
+
+[[package]]
+name = "geo-types"
+version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ff16065e5720f376fbced200a5ae0f47ace85fd70b7e54269790281353b6d61"
+dependencies = [
+ "approx",
+ "arbitrary",
+ "num-traits",
+ "rstar",
+ "serde",
+]
+
+[[package]]
+name = "geographiclib-rs"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6e5ed84f8089c70234b0a8e0aedb6dc733671612ddc0d37c6066052f9781960"
+dependencies = [
+ "libm",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.5"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "h2"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hash32"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
+dependencies = [
+ "byteorder",
 ]
 
 [[package]]
@@ -100,6 +1138,38 @@
 checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
 
 [[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash 0.8.11",
+ "allocator-api2",
+]
+
+[[package]]
+name = "heapless"
+version = "0.7.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
+dependencies = [
+ "atomic-polyfill",
+ "hash32",
+ "rustc_version",
+ "spin 0.9.8",
+ "stable_deref_trait",
+]
+
+[[package]]
 name = "heck"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -115,13 +1185,242 @@
 ]
 
 [[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
 name = "indexmap"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
 dependencies = [
  "autocfg",
- "hashbrown",
+ "hashbrown 0.11.2",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lalrpop"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca"
+dependencies = [
+ "ascii-canvas",
+ "bit-set",
+ "ena",
+ "itertools 0.11.0",
+ "lalrpop-util",
+ "petgraph",
+ "pico-args",
+ "regex",
+ "regex-syntax",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
+ "walkdir",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
+dependencies = [
+ "regex-automata",
 ]
 
 [[package]]
@@ -129,12 +1428,50 @@
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "lexicmp"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7378d131ddf24063b32cbd7e91668d183140c4b3906270635a4d633d1068ea5d"
+dependencies = [
+ "any_ascii",
+]
 
 [[package]]
 name = "libc"
-version = "0.2.119"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
 
 [[package]]
 name = "log"
@@ -142,23 +1479,95 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
 dependencies = [
- "log 0.4.14",
+ "log 0.4.21",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
  "cfg-if",
+ "digest",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "miette"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
+dependencies = [
+ "miette-derive",
+ "once_cell",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
 name = "names"
@@ -180,6 +1589,159 @@
 ]
 
 [[package]]
+name = "nanoid"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+[[package]]
+name = "nibble_vec"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint-dig"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "object_store"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2524735495ea1268be33d200e1ee97455096a0846295a21548cd2f3541de7050"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "chrono",
+ "futures",
+ "humantime",
+ "itertools 0.11.0",
+ "parking_lot",
+ "percent-encoding",
+ "snafu",
+ "tokio",
+ "tracing",
+ "url",
+ "walkdir",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
 name = "os_str_bytes"
 version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -189,12 +1751,204 @@
 ]
 
 [[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "path-clean"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+ "password-hash",
+ "sha2",
+]
+
+[[package]]
+name = "pem"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
+name = "pem-rfc7468"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
+dependencies = [
+ "base64ct",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.2.6",
+]
+
+[[package]]
+name = "pharos"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414"
+dependencies = [
+ "futures",
+ "rustc_version",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pico-args"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+[[package]]
+name = "pin-project"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
+]
+
+[[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
 
 [[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -203,7 +1957,7 @@
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "version_check",
 ]
 
@@ -220,23 +1974,87 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.36"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
+]
+
+[[package]]
+name = "psl-types"
+version = "2.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quick_cache"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1380629287ed1247c1e0fcc6d43efdcec508b65382c9ab775cc8f3df7ca07b0"
+dependencies = [
+ "ahash 0.8.11",
+ "equivalent",
+ "hashbrown 0.14.3",
+ "parking_lot",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.15"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "radix_trie"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
+dependencies = [
+ "endian-type",
+ "nibble_vec",
+ "serde",
+]
+
+[[package]]
 name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -259,28 +2077,930 @@
 
 [[package]]
 name = "rand_core"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
  "getrandom",
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "ref-cast"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log 0.4.21",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "revision"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87eb86913082f8976b06d07a59f17df9120e6f38b882cf3fc5a45b4499e224b6"
+dependencies = [
+ "bincode",
+ "chrono",
+ "geo 0.26.0",
+ "regex",
+ "revision-derive",
+ "roaring",
+ "rust_decimal",
+ "serde",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "revision-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf996fc5f61f1dbec35799b5c00c6dda12e8862e8cb782ed24e10d0292e60ed3"
+dependencies = [
+ "darling",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin 0.5.2",
+ "untrusted 0.7.1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rkyv"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "roaring"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "serde",
+]
+
+[[package]]
+name = "robust"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30"
+
+[[package]]
+name = "rsa"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
+dependencies = [
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rstar"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73111312eb7a2287d229f06c00ff35b51ddee180f017ab6dec1f69d62ac098d6"
+dependencies = [
+ "heapless",
+ "num-traits",
+ "smallvec",
+]
+
+[[package]]
+name = "rust-stemmers"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rust_decimal"
+version = "1.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a"
+dependencies = [
+ "arrayvec",
+ "borsh",
+ "bytes",
+ "num-traits",
+ "rand",
+ "rkyv",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc_lexer"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c86aae0c77166108c01305ee1a36a1e77289d7dc6ca0a3cd91ff4992de2d16a5"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log 0.4.21",
+ "ring 0.17.8",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "scrypt"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
+dependencies = [
+ "password-hash",
+ "pbkdf2",
+ "salsa20",
+ "sha2",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "send_wrapper"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.115"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+dependencies = [
+ "indexmap 2.2.6",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.8.0",
+ "indexmap 2.2.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "snafu"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
+dependencies = [
+ "doc-comment",
+ "snafu-derive",
+]
+
+[[package]]
+name = "snafu-derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "snap"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "spade"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61addf9117b11d1f5b4bf6fe94242ba25f59d2d4b2080544b771bd647024fd00"
+dependencies = [
+ "hashbrown 0.14.3",
+ "num-traits",
+ "robust",
+ "smallvec",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spki"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "libc",
+ "psm",
+ "winapi",
+]
+
+[[package]]
+name = "storekey"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43c42833834a5d23b344f71d87114e0cc9994766a5c42938f4b50e7b2aef85b2"
+dependencies = [
+ "byteorder",
+ "memchr",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared",
+ "precomputed-hash",
+]
+
+[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
-name = "syn"
-version = "1.0.86"
+name = "subtle"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "surrealdb"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763696a1b2da764f1bbc0db79115f08a01a0eae87817f238395e668043be3b21"
+dependencies = [
+ "async-channel",
+ "bincode",
+ "chrono",
+ "dmp",
+ "flume",
+ "futures",
+ "futures-concurrency",
+ "geo 0.27.0",
+ "indexmap 2.2.6",
+ "once_cell",
+ "path-clean",
+ "pharos",
+ "reqwest",
+ "revision",
+ "ring 0.17.8",
+ "rust_decimal",
+ "rustls",
+ "semver",
+ "serde",
+ "serde_json",
+ "surrealdb-core",
+ "thiserror",
+ "tokio",
+ "tokio-tungstenite",
+ "tracing",
+ "trice",
+ "url",
+ "uuid",
+ "wasm-bindgen-futures",
+ "wasmtimer",
+ "ws_stream_wasm",
+]
+
+[[package]]
+name = "surrealdb-core"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcec4e37f6a316d8b872595a2c983c6b520b03bd1c0ff6185633a08f0e7e1a3"
+dependencies = [
+ "addr",
+ "any_ascii",
+ "argon2",
+ "async-channel",
+ "async-executor",
+ "async-recursion",
+ "base64 0.21.7",
+ "bcrypt",
+ "bincode",
+ "bytes",
+ "cedar-policy",
+ "chrono",
+ "deunicode",
+ "dmp",
+ "fst",
+ "futures",
+ "fuzzy-matcher",
+ "geo 0.27.0",
+ "geo-types",
+ "hex",
+ "ipnet",
+ "lexicmp",
+ "md-5",
+ "nanoid",
+ "nom",
+ "num_cpus",
+ "object_store",
+ "once_cell",
+ "pbkdf2",
+ "pharos",
+ "pin-project-lite",
+ "quick_cache",
+ "radix_trie",
+ "rand",
+ "regex",
+ "revision",
+ "ring 0.17.8",
+ "roaring",
+ "rust-stemmers",
+ "rust_decimal",
+ "scrypt",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha1",
+ "sha2",
+ "snap",
+ "storekey",
+ "surrealdb-derive",
+ "surrealdb-jsonwebtoken",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "trice",
+ "ulid",
+ "url",
+ "uuid",
+ "wasm-bindgen-futures",
+ "wasmtimer",
+ "ws_stream_wasm",
+]
+
+[[package]]
+name = "surrealdb-derive"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aacdb4c58b9ebef0291310afcd63af0012d85610d361f3785952c61b6f1dddf4"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "surrealdb-jsonwebtoken"
+version = "8.3.0-surreal.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d4f759c65df8a8cf2d83c99db7fdd3ae5b8fff05fa7fe69a8612f29dd5f99b"
+dependencies = [
+ "base64 0.21.7",
+ "getrandom",
+ "hmac",
+ "pem",
+ "rand",
+ "ring 0.16.20",
+ "rsa",
+ "serde",
+ "serde_json",
+ "sha2",
+ "simple_asn1",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
 ]
 
 [[package]]
@@ -299,10 +3019,370 @@
 checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.2"
+name = "thiserror"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-tungstenite"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
+dependencies = [
+ "futures-util",
+ "log 0.4.21",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+ "tungstenite",
+ "webpki-roots",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap 2.2.6",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "trice"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3aaab10ae9fac0b10f392752bf56f0fd20845f39037fec931e8537b105b515a"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "tungstenite"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http",
+ "httparse",
+ "log 0.4.21",
+ "rand",
+ "rustls",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ulid"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34778c17965aa2a08913b57e1f34db9b4a63f5de31768b55bf20d2795f921259"
+dependencies = [
+ "getrandom",
+ "rand",
+ "serde",
+ "web-time",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-script"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
+
+[[package]]
+name = "unicode-security"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee9e13753df674873f3c4693b240ae5c03245ddc157dfccf7c26db9329af3a11"
+dependencies = [
+ "unicode-normalization",
+ "unicode-script",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "atomic",
+ "getrandom",
+ "serde",
+ "wasm-bindgen",
+]
 
 [[package]]
 name = "value-bag"
@@ -321,10 +3401,147 @@
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+name = "walkdir"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log 0.4.21",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-streams"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wasmtimer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f656cd8858a5164932d8a90f936700860976ec21eb00e0fe2aa8cab13f6b4cf"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot",
+ "pin-utils",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "winapi"
@@ -356,3 +3573,217 @@
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ws_stream_wasm"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5"
+dependencies = [
+ "async_io_stream",
+ "futures",
+ "js-sys",
+ "log 0.4.21",
+ "pharos",
+ "rustc_version",
+ "send_wrapper",
+ "thiserror",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.57",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/crate_universe/test_data/metadata/aliases/Cargo.toml b/crate_universe/test_data/metadata/aliases/Cargo.toml
index 816a328..088fed6 100644
--- a/crate_universe/test_data/metadata/aliases/Cargo.toml
+++ b/crate_universe/test_data/metadata/aliases/Cargo.toml
@@ -14,9 +14,12 @@
 
 [dependencies]
 # Defines library targets
-log = "=0.4.14"
+log = "=0.4.21"
 pinned_log = { package = "log", version = "=0.3.9" }
 
+# Contains a transitive alias with a matching `bench` target
+surrealdb = "=1.3.1"
+
 # Contains a transitive alias
 value-bag = "=1.0.0-alpha.7"
 
diff --git a/crate_universe/test_data/metadata/aliases/metadata.json b/crate_universe/test_data/metadata/aliases/metadata.json
index d1a001f..0f6c9cf 100644
--- a/crate_universe/test_data/metadata/aliases/metadata.json
+++ b/crate_universe/test_data/metadata/aliases/metadata.json
@@ -2,6 +2,1653 @@
     "metadata": null,
     "packages": [
         {
+            "authors": [
+                "rushmorem <rushmore@webenchanter.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "serde"
+                    ],
+                    "kind": null,
+                    "name": "no-std-net",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "psl",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.67",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "psl-types",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "publicsuffix",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.134",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "psl",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.67",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "publicsuffix",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rspec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.134",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.75",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A library for parsing domain names",
+            "documentation": "https://docs.rs/addr",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "psl",
+                    "std"
+                ],
+                "idna": [],
+                "net": [
+                    "no-std-net"
+                ],
+                "no-std-net": [
+                    "dep:no-std-net"
+                ],
+                "psl": [
+                    "dep:psl"
+                ],
+                "publicsuffix": [
+                    "dep:publicsuffix"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#addr@0.15.6",
+            "keywords": [
+                "tld",
+                "gtld",
+                "cctld",
+                "domain",
+                "no_std"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr-0.15.6/Cargo.toml",
+            "metadata": null,
+            "name": "addr",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/addr-rs/addr",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "addr",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr-0.15.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr-0.15.6/tests/integration.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "list_benchmark",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr-0.15.6/benches/list_benchmark.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.15.6"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "development-tools::debugging"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "cpp_demangle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fallible-iterator",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "read"
+                    ],
+                    "kind": null,
+                    "name": "gimli",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.28.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memmap2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "read"
+                    ],
+                    "kind": null,
+                    "name": "object",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.32.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-demangle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "smallvec",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "backtrace",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.13",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "wrap_help"
+                    ],
+                    "kind": "dev",
+                    "name": "clap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.3.21",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "findshlibs",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "libtest-mimic",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "typed-arena",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A cross-platform symbolication library written in Rust, using `gimli`",
+            "documentation": "https://docs.rs/addr2line",
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "cpp_demangle": [
+                    "dep:cpp_demangle"
+                ],
+                "default": [
+                    "rustc-demangle",
+                    "cpp_demangle",
+                    "std-object",
+                    "fallible-iterator",
+                    "smallvec",
+                    "memmap2"
+                ],
+                "fallible-iterator": [
+                    "dep:fallible-iterator"
+                ],
+                "memmap2": [
+                    "dep:memmap2"
+                ],
+                "object": [
+                    "dep:object"
+                ],
+                "rustc-demangle": [
+                    "dep:rustc-demangle"
+                ],
+                "rustc-dep-of-std": [
+                    "core",
+                    "alloc",
+                    "compiler_builtins",
+                    "gimli/rustc-dep-of-std"
+                ],
+                "smallvec": [
+                    "dep:smallvec"
+                ],
+                "std": [
+                    "gimli/std"
+                ],
+                "std-object": [
+                    "std",
+                    "object",
+                    "object/std",
+                    "object/compression",
+                    "gimli/endian-reader"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#addr2line@0.21.0",
+            "keywords": [
+                "DWARF",
+                "debug",
+                "elf",
+                "symbolicate",
+                "atos"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/Cargo.toml",
+            "metadata": null,
+            "name": "addr2line",
+            "publish": null,
+            "readme": "./README.md",
+            "repository": "https://github.com/gimli-rs/addr2line",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "addr2line",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "addr2line",
+                    "required-features": [
+                        "default"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/examples/addr2line.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "output_equivalence",
+                    "required-features": [
+                        "default"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/output_equivalence.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "correctness",
+                    "required-features": [
+                        "default"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/correctness.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "parse",
+                    "required-features": [
+                        "std-object"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/addr2line-0.21.0/tests/parse.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.21.0"
+        },
+        {
+            "authors": [
+                "Jonas Schievink <jonasschievink@gmail.com>"
+            ],
+            "categories": [
+                "algorithms"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A simple clean-room implementation of the Adler-32 checksum",
+            "documentation": "https://docs.rs/adler/",
+            "edition": "2015",
+            "features": {
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [
+                    "std"
+                ],
+                "rustc-dep-of-std": [
+                    "core",
+                    "compiler_builtins"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#adler@1.0.2",
+            "keywords": [
+                "checksum",
+                "integrity",
+                "hash",
+                "adler32",
+                "zlib"
+            ],
+            "license": "0BSD OR MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--cfg=docsrs"
+                        ]
+                    }
+                },
+                "release": {
+                    "no-dev-version": true,
+                    "pre-release-commit-message": "Release {{version}}",
+                    "pre-release-replacements": [
+                        {
+                            "file": "CHANGELOG.md",
+                            "replace": "## Unreleased\n\nNo changes.\n\n## [{{version}} - {{date}}](https://github.com/jonas-schievink/adler/releases/tag/v{{version}})\n",
+                            "search": "## Unreleased\n"
+                        },
+                        {
+                            "file": "README.md",
+                            "replace": "adler = \"{{version}}\"",
+                            "search": "adler = \"[a-z0-9\\\\.-]+\""
+                        },
+                        {
+                            "file": "src/lib.rs",
+                            "replace": "https://docs.rs/adler/{{version}}",
+                            "search": "https://docs.rs/adler/[a-z0-9\\.-]+"
+                        }
+                    ],
+                    "tag-message": "{{version}}"
+                }
+            },
+            "name": "adler",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/jonas-schievink/adler.git",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "adler",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/adler-1.0.2/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.2"
+        },
+        {
+            "authors": [
+                "Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"
+            ],
+            "categories": [
+                "algorithms",
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fxhash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "no-panic",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "seahash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.59",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "version_check",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "const-random",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.117",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.13.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(target_arch = \"arm\", target_os = \"none\")))",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\")))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "const-random",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\")))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.117",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(any(target_os = \"linux\", target_os = \"android\", target_os = \"windows\", target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonfly\", target_os = \"solaris\", target_os = \"illumos\", target_os = \"fuchsia\", target_os = \"redox\", target_os = \"cloudabi\", target_os = \"haiku\", target_os = \"vxworks\", target_os = \"emscripten\", target_os = \"wasi\")))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A non-cryptographic hash function using AES-NI for high performance",
+            "documentation": "https://docs.rs/ahash",
+            "edition": "2018",
+            "features": {
+                "atomic-polyfill": [
+                    "dep:atomic-polyfill",
+                    "once_cell/atomic-polyfill"
+                ],
+                "compile-time-rng": [
+                    "const-random"
+                ],
+                "const-random": [
+                    "dep:const-random"
+                ],
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ahash@0.7.8",
+            "keywords": [
+                "hash",
+                "hasher",
+                "hashmap",
+                "aes",
+                "no-std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std"
+                        ],
+                        "rustc-args": [
+                            "-C",
+                            "target-feature=+aes"
+                        ],
+                        "rustdoc-args": [
+                            "-C",
+                            "target-feature=+aes"
+                        ]
+                    }
+                }
+            },
+            "name": "ahash",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/tkaitchuck/ahash",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ahash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "nopanic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/tests/nopanic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "map_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/tests/map_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/tests/bench.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "ahash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/tests/bench.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "map",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/tests/map_tests.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.7.8/./build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.7.8"
+        },
+        {
+            "authors": [
+                "Tom Kaitchuck <Tom.Kaitchuck@gmail.com>"
+            ],
+            "categories": [
+                "algorithms",
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "const-random",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.17",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.117",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "simd"
+                    ],
+                    "kind": null,
+                    "name": "zerocopy",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.31",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "html_reports"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fxhash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hashbrown",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "no-panic",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pcg-mwc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "seahash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.59",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "smallvec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.13.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "version_check",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.18.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(target_arch = \"arm\", target_os = \"none\")))",
+                    "uses_default_features": false
+                }
+            ],
+            "description": "A non-cryptographic hash function using AES-NI for high performance",
+            "documentation": "https://docs.rs/ahash",
+            "edition": "2018",
+            "features": {
+                "atomic-polyfill": [
+                    "dep:atomic-polyfill",
+                    "once_cell/atomic-polyfill"
+                ],
+                "compile-time-rng": [
+                    "const-random"
+                ],
+                "const-random": [
+                    "dep:const-random"
+                ],
+                "default": [
+                    "std",
+                    "runtime-rng"
+                ],
+                "getrandom": [
+                    "dep:getrandom"
+                ],
+                "nightly-arm-aes": [],
+                "no-rng": [],
+                "runtime-rng": [
+                    "getrandom"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ahash@0.8.11",
+            "keywords": [
+                "hash",
+                "hasher",
+                "hashmap",
+                "aes",
+                "no-std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std"
+                        ],
+                        "rustc-args": [
+                            "-C",
+                            "target-feature=+aes"
+                        ],
+                        "rustdoc-args": [
+                            "-C",
+                            "target-feature=+aes"
+                        ]
+                    }
+                }
+            },
+            "name": "ahash",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/tkaitchuck/ahash",
+            "rust_version": "1.60.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ahash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "nopanic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/tests/nopanic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "map_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/tests/map_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/tests/bench.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "ahash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/tests/bench.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "map",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/tests/map_tests.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ahash-0.8.11/./build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.8.11"
+        },
+        {
+            "authors": [
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [
+                "text-processing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.17",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Fast multiple substring searching.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std",
+                    "perf-literal"
+                ],
+                "logging": [
+                    "dep:log"
+                ],
+                "perf-literal": [
+                    "dep:memchr"
+                ],
+                "std": [
+                    "memchr?/std"
+                ]
+            },
+            "homepage": "https://github.com/BurntSushi/aho-corasick",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#aho-corasick@1.1.3",
+            "keywords": [
+                "string",
+                "search",
+                "text",
+                "pattern",
+                "multi"
+            ],
+            "license": "Unlicense OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-1.1.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs",
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "aho-corasick",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/BurntSushi/aho-corasick",
+            "rust_version": "1.60.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "aho_corasick",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/aho-corasick-1.1.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.1.3"
+        },
+        {
             "authors": [],
             "categories": [],
             "default_run": null,
@@ -13,7 +1660,7 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "=0.4.14",
+                    "req": "=0.4.21",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": true
@@ -57,6 +1704,18 @@
                 {
                     "features": [],
                     "kind": null,
+                    "name": "surrealdb",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=1.3.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
                     "name": "value-bag",
                     "optional": false,
                     "registry": null,
@@ -72,7 +1731,7 @@
             "edition": "2018",
             "features": {},
             "homepage": null,
-            "id": "aliases 0.1.0 (path+file://{TEMP_DIR}/aliases)",
+            "id": "path+file://{TEMP_DIR}/aliases#0.1.0",
             "keywords": [],
             "license": null,
             "license_file": null,
@@ -105,6 +1764,2872 @@
         },
         {
             "authors": [
+                "Zakarum <zaq.dev@icloud.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Mirror of Rust's allocator API",
+            "documentation": "https://docs.rs/allocator-api2",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "nightly": [],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": "https://github.com/zakarumych/allocator-api2",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#allocator-api2@0.2.16",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/allocator-api2-0.2.16/Cargo.toml",
+            "metadata": null,
+            "name": "allocator-api2",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/zakarumych/allocator-api2",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "allocator_api2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/allocator-api2-0.2.16/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.16"
+        },
+        {
+            "authors": [
+                "RumovZ"
+            ],
+            "categories": [
+                "date-and-time"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "zip",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Parser for the Android-specific tzdata file",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#android-tzdata@0.1.1",
+            "keywords": [
+                "parser",
+                "android",
+                "timezone"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/android-tzdata-0.1.1/Cargo.toml",
+            "metadata": null,
+            "name": "android-tzdata",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RumovZ/android-tzdata",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "android_tzdata",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/android-tzdata-0.1.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.1"
+        },
+        {
+            "authors": [
+                "Nicolas Silva <nical@fastmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.126",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Minimal Android system properties wrapper",
+            "documentation": "https://docs.rs/android_system_properties",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://github.com/nical/android_system_properties",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#android_system_properties@0.1.5",
+            "keywords": [
+                "android"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/android_system_properties-0.1.5/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "targets": [
+                            "arm-linux-androideabi",
+                            "armv7-linux-androideabi",
+                            "aarch64-linux-android",
+                            "i686-linux-android",
+                            "x86_64-linux-android",
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "android_system_properties",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/nical/android_system_properties",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "android_system_properties",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/android_system_properties-0.1.5/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "time_zone",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/android_system_properties-0.1.5/examples/time_zone.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.5"
+        },
+        {
+            "authors": [
+                "Hunter WB <hunter@hunterwb.com>"
+            ],
+            "categories": [
+                "text-processing",
+                "internationalization",
+                "no-std",
+                "command-line-utilities"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Unicode to ASCII transliteration",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://anyascii.com",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#any_ascii@0.3.2",
+            "keywords": [
+                "unicode",
+                "ascii",
+                "transliteration",
+                "emoji",
+                "unidecode"
+            ],
+            "license": "ISC",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/any_ascii-0.3.2/Cargo.toml",
+            "metadata": null,
+            "name": "any_ascii",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/anyascii/anyascii",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "any_ascii",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/any_ascii-0.3.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bin"
+                    ],
+                    "name": "anyascii",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/any_ascii-0.3.2/src/main.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.2"
+        },
+        {
+            "authors": [
+                "Brendan Zabarauskas <bjzaba@yahoo.com.au>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-complex",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Approximate floating point equality comparisons and assertions.",
+            "documentation": "https://docs.rs/approx",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "num-complex": [
+                    "dep:num-complex"
+                ],
+                "std": []
+            },
+            "homepage": "https://github.com/brendanzab/approx",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#approx@0.5.1",
+            "keywords": [
+                "approximate",
+                "assert",
+                "comparison",
+                "equality",
+                "float"
+            ],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std",
+                            "num-complex"
+                        ]
+                    }
+                }
+            },
+            "name": "approx",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/brendanzab/approx",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "approx",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "relative_eq",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/tests/relative_eq.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "abs_diff_eq",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/tests/abs_diff_eq.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macro_import",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/tests/macro_import.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/tests/macros.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ulps_eq",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/approx-0.5.1/tests/ulps_eq.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.1"
+        },
+        {
+            "authors": [
+                "The Rust-Fuzz Project Developers",
+                "Nick Fitzgerald <fitzgen@gmail.com>",
+                "Manish Goregaokar <manishsmail@gmail.com>",
+                "Simonas Kazlauskas <arbitrary@kazlauskas.me>",
+                "Brian L. Troutwine <brian@troutwine.us>",
+                "Corey Farwell <coreyf@rwell.org>"
+            ],
+            "categories": [
+                "development-tools::testing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "derive_arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "exhaustigen",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "The trait for generating structured data from unstructured data",
+            "documentation": "https://docs.rs/arbitrary/",
+            "edition": "2021",
+            "features": {
+                "derive": [
+                    "derive_arbitrary"
+                ],
+                "derive_arbitrary": [
+                    "dep:derive_arbitrary"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#arbitrary@1.3.2",
+            "keywords": [
+                "arbitrary",
+                "testing"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/Cargo.toml",
+            "metadata": null,
+            "name": "arbitrary",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-fuzz/arbitrary/",
+            "rust_version": "1.63.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "arbitrary",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "derive_enum",
+                    "required-features": [
+                        "derive"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/examples/derive_enum.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "derive",
+                    "required-features": [
+                        "derive"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/./tests/derive.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "path",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/tests/path.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bound",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arbitrary-1.3.2/tests/bound.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.3.2"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "authentication",
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "base64ct",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "blake2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "password-hash",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "rand_core"
+                    ],
+                    "kind": "dev",
+                    "name": "password-hash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cpufeatures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_arch = \"x86\", target_arch = \"x86_64\"))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Pure Rust implementation of the Argon2 password hashing function with support\nfor the Argon2d, Argon2i, and Argon2id algorithmic variants\n",
+            "documentation": "https://docs.rs/argon2",
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "password-hash/alloc"
+                ],
+                "default": [
+                    "alloc",
+                    "password-hash",
+                    "rand"
+                ],
+                "password-hash": [
+                    "dep:password-hash"
+                ],
+                "rand": [
+                    "password-hash/rand_core"
+                ],
+                "simple": [
+                    "password-hash"
+                ],
+                "std": [
+                    "alloc",
+                    "password-hash/std"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#argon2@0.5.3",
+            "keywords": [
+                "crypto",
+                "hashing",
+                "password",
+                "phf"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/argon2-0.5.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "argon2",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/password-hashes/tree/master/argon2",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "argon2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/argon2-0.5.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "kat",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/argon2-0.5.3/tests/kat.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "phc_strings",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/argon2-0.5.3/tests/phc_strings.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.3"
+        },
+        {
+            "authors": [
+                "bluss"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bencher",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString.",
+            "documentation": "https://docs.rs/arrayvec/",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#arrayvec@0.7.4",
+            "keywords": [
+                "stack",
+                "vector",
+                "array",
+                "data-structure",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "serde",
+                            "zeroize"
+                        ]
+                    }
+                },
+                "release": {
+                    "no-dev-version": true,
+                    "tag-name": "{{version}}"
+                }
+            },
+            "name": "arrayvec",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/bluss/arrayvec",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "arrayvec",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/tests/serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "extend",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/benches/extend.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "arraystring",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/arrayvec-0.7.4/benches/arraystring.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.7.4"
+        },
+        {
+            "authors": [
+                "Niko Matsakis <niko@alum.mit.edu>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "term",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "diff",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "simple canvas for drawing lines and styled text and emitting to the terminal",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ascii-canvas@3.0.0",
+            "keywords": [],
+            "license": "Apache-2.0/MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ascii-canvas-3.0.0/Cargo.toml",
+            "metadata": null,
+            "name": "ascii-canvas",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/nikomatsakis/ascii-canvas",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ascii_canvas",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ascii-canvas-3.0.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "3.0.0"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "concurrent-queue",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "event-listener",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "easy-parallel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Async multi-producer multi-consumer channel",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-channel@1.9.0",
+            "keywords": [
+                "mpmc",
+                "mpsc",
+                "spmc",
+                "chan",
+                "futures"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/Cargo.toml",
+            "metadata": null,
+            "name": "async-channel",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/async-channel",
+            "rust_version": "1.45",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "async_channel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unbounded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/tests/unbounded.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bounded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-channel-1.9.0/tests/bounded.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.9.0"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "async-lock",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "async-task",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "concurrent-queue",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fastrand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "slab",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "async-channel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "async-io",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "async-lock",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "cargo_bench_support"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "easy-parallel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fastrand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.16.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_family = \"wasm\")",
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Async executor",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-executor@1.9.1",
+            "keywords": [
+                "asynchronous",
+                "executor",
+                "single",
+                "multi",
+                "spawn"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/Cargo.toml",
+            "metadata": null,
+            "name": "async-executor",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/async-executor",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "async_executor",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "priority",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/examples/priority.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "limit",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/examples/limit.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "local_queue",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/tests/local_queue.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "drop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/tests/drop.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "larger_tasks",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/tests/larger_tasks.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "panic_prop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/tests/panic_prop.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "different_executors",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/tests/different_executors.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "executor",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-executor-1.9.1/benches/executor.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.9.1"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "event-listener",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "event-listener-strategy",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "async-channel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fastrand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "waker-fn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_family = \"wasm\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Async synchronization primitives",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "event-listener/std",
+                    "event-listener-strategy/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-lock@3.3.0",
+            "keywords": [
+                "lock",
+                "mutex",
+                "rwlock",
+                "semaphore",
+                "barrier"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/Cargo.toml",
+            "metadata": null,
+            "name": "async-lock",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/async-lock",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "async_lock",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "semaphore",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/semaphore.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "barrier",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/barrier.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "rwlock",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/rwlock.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mutex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-lock-3.3.0/tests/mutex.rs",
+                    "test": true
+                }
+            ],
+            "version": "3.3.0"
+        },
+        {
+            "authors": [
+                "Robert Usher <266585+dcchut@users.noreply.github.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "full",
+                        "visit-mut"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-executor",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "macrotest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Recursion for async functions",
+            "documentation": "https://docs.rs/async-recursion",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-recursion@1.1.0",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "async-recursion",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/dcchut/async-recursion",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "async_recursion",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros_all_the_way_down",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/macros_all_the_way_down.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "fibonacci",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/fibonacci.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/compiletest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "lifetimes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/lifetimes.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "args_sync",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/args_sync.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "core_module",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/core_module.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "generic_parameters",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/generic_parameters.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "struct_methods",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-recursion-1.1.0/tests/struct_methods.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.1.0"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "portable-atomic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "atomic-waker",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "easy-parallel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "flaky_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "flume",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "smol",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Task abstraction for building executors",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "portable-atomic": [
+                    "dep:portable-atomic"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-task@4.7.0",
+            "keywords": [
+                "futures",
+                "task",
+                "executor",
+                "spawn"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/Cargo.toml",
+            "metadata": null,
+            "name": "async-task",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/async-task",
+            "rust_version": "1.57",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "async_task",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "spawn-on-thread",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn-on-thread.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "with-metadata",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/with-metadata.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "spawn",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "spawn-local",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/examples/spawn-local.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "waker_ready",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_ready.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "join",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/join.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "panic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/panic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "metadata",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/metadata.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cancel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/cancel.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "waker_pending",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_pending.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "waker_panic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/waker_panic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ready",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/ready.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "basic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/tests/basic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "spawn",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-task-4.7.0/benches/spawn.rs",
+                    "test": false
+                }
+            ],
+            "version": "4.7.0"
+        },
+        {
+            "authors": [
+                "David Tolnay <dtolnay@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.74",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.35",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full",
+                        "visit-mut"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.46",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.13",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tracing",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.40",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tracing-attributes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.27",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "diff"
+                    ],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.81",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Type erasure for async trait methods",
+            "documentation": "https://docs.rs/async-trait",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async-trait@0.1.79",
+            "keywords": [
+                "async"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.79/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "async-trait",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/dtolnay/async-trait",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "async_trait",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.79/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.79/tests/test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.79/tests/compiletest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async-trait-0.1.79/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.79"
+        },
+        {
+            "authors": [
+                "Naja Melan <najamelan@autistici.org>"
+            ],
+            "categories": [
+                "asynchronous",
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pharos",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tokio",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "assert_matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "log",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pretty_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "rustc_version",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "IntoAsyncRead on steriods",
+            "documentation": "https://docs.rs/async_io_stream",
+            "edition": "2021",
+            "features": {
+                "map_pharos": [
+                    "pharos"
+                ],
+                "pharos": [
+                    "dep:pharos"
+                ],
+                "tokio": [
+                    "dep:tokio"
+                ],
+                "tokio_io": [
+                    "tokio"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#async_io_stream@0.3.3",
+            "keywords": [
+                "futures",
+                "io",
+                "async",
+                "asyncread",
+                "asyncwrite"
+            ],
+            "license": "Unlicense",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async_io_stream-0.3.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "targets": []
+                    }
+                }
+            },
+            "name": "async_io_stream",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/najamelan/async_io_stream",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "async_io_stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async_io_stream-0.3.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/async_io_stream-0.3.3/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.3"
+        },
+        {
+            "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Generic Atomic<T> wrapper type",
+            "documentation": "https://amanieu.github.io/atomic-rs/atomic/index.html",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "fallback"
+                ],
+                "fallback": [],
+                "nightly": [],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#atomic@0.5.3",
+            "keywords": [
+                "atomic",
+                "no_std"
+            ],
+            "license": "Apache-2.0/MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/atomic-0.5.3/Cargo.toml",
+            "metadata": null,
+            "name": "atomic",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Amanieu/atomic-rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "atomic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/atomic-0.5.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.3"
+        },
+        {
+            "authors": [
+                "Dario Nieuwenhuis <dirbaio@dirbaio.net>"
+            ],
+            "categories": [
+                "embedded",
+                "no-std",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "critical-section",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Atomic polyfills, for targets where they're not available.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#atomic-polyfill@1.0.3",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/atomic-polyfill-1.0.3/Cargo.toml",
+            "metadata": null,
+            "name": "atomic-polyfill",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/embassy-rs/atomic-polyfill",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "atomic_polyfill",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/atomic-polyfill-1.0.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/atomic-polyfill-1.0.3/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.3"
+        },
+        {
+            "authors": [
                 "softprops <d.tangren@gmail.com>"
             ],
             "categories": [],
@@ -158,7 +4683,7 @@
             "edition": "2015",
             "features": {},
             "homepage": "https://github.com/softprops/atty",
-            "id": "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#atty@0.2.14",
             "keywords": [
                 "terminal",
                 "tty",
@@ -221,7 +4746,7 @@
             "edition": "2015",
             "features": {},
             "homepage": null,
-            "id": "autocfg 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#autocfg@1.1.0",
             "keywords": [
                 "rustc",
                 "build",
@@ -330,6 +4855,1532 @@
             "authors": [
                 "The Rust Project Developers"
             ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "cpp_demangle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-demangle",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-serialize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "libloading",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "cc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.90",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "addr2line",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.146",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "miniz_oxide",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "read_core",
+                        "elf",
+                        "macho",
+                        "pe",
+                        "xcoff",
+                        "unaligned",
+                        "archive"
+                    ],
+                    "kind": null,
+                    "name": "object",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.32.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(all(windows, target_env = \"msvc\", not(target_vendor = \"uwp\"))))",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "winapi",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n",
+            "documentation": "https://docs.rs/backtrace",
+            "edition": "2021",
+            "features": {
+                "coresymbolication": [],
+                "cpp_demangle": [
+                    "dep:cpp_demangle"
+                ],
+                "dbghelp": [],
+                "default": [
+                    "std"
+                ],
+                "dladdr": [],
+                "gimli-symbolize": [],
+                "kernel32": [],
+                "libbacktrace": [],
+                "libunwind": [],
+                "rustc-serialize": [
+                    "dep:rustc-serialize"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "serialize-rustc": [
+                    "rustc-serialize"
+                ],
+                "serialize-serde": [
+                    "serde"
+                ],
+                "std": [],
+                "unix-backtrace": [],
+                "verify-winapi": [
+                    "winapi/dbghelp",
+                    "winapi/handleapi",
+                    "winapi/libloaderapi",
+                    "winapi/memoryapi",
+                    "winapi/minwindef",
+                    "winapi/processthreadsapi",
+                    "winapi/synchapi",
+                    "winapi/tlhelp32",
+                    "winapi/winbase",
+                    "winapi/winnt"
+                ],
+                "winapi": [
+                    "dep:winapi"
+                ]
+            },
+            "homepage": "https://github.com/rust-lang/backtrace-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#backtrace@0.3.71",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/Cargo.toml",
+            "metadata": null,
+            "name": "backtrace",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/backtrace-rs",
+            "rust_version": "1.65.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "backtrace",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "backtrace",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/examples/backtrace.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "raw",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/examples/raw.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "skip_inner_frames",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/skip_inner_frames.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "long_fn_name",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/long_fn_name.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "smoke",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/smoke.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "accuracy",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/accuracy/main.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "concurrent-panics",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/concurrent-panics.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "current-exe-mismatch",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/current-exe-mismatch.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "sgx-image-base",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/tests/sgx-image-base.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmarks",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/benches/benchmarks.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/backtrace-0.3.71/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.71"
+        },
+        {
+            "authors": [
+                "Alice Maz <alice@alicemaz.com>",
+                "Marshall Pierce <marshall@mpierce.org>"
+            ],
+            "categories": [
+                "encoding"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "clap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.2.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rstest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.13.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rstest_reuse",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "strum",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "encodes and decodes base64 as bytes or utf8",
+            "documentation": "https://docs.rs/base64",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#base64@0.21.7",
+            "keywords": [
+                "base64",
+                "utf8",
+                "encode",
+                "decode",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "base64",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/marshallpierce/rust-base64",
+            "rust_version": "1.48.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "base64",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "base64",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/examples/base64.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "encode",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/tests/encode.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmarks",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.21.7/benches/benchmarks.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.21.7"
+        },
+        {
+            "authors": [
+                "Alice Maz <alice@alicemaz.com>",
+                "Marshall Pierce <marshall@mpierce.org>"
+            ],
+            "categories": [
+                "encoding"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "clap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.2.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rstest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.13.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rstest_reuse",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "strum",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "encodes and decodes base64 as bytes or utf8",
+            "documentation": "https://docs.rs/base64",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.0",
+            "keywords": [
+                "base64",
+                "utf8",
+                "encode",
+                "decode",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "base64",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/marshallpierce/rust-base64",
+            "rust_version": "1.48.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "base64",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "base64",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/examples/base64.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "encode",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/tests/encode.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmarks",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64-0.22.0/benches/benchmarks.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.22.0"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "base64",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proptest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Pure Rust implementation of Base64 (RFC 4648) which avoids any usages of\ndata-dependent branches/LUTs and thereby provides portable \"best effort\"\nconstant-time operation and embedded-friendly no_std support\n",
+            "documentation": "https://docs.rs/base64ct",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#base64ct@1.6.0",
+            "keywords": [
+                "crypto",
+                "base64",
+                "pem",
+                "phc"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "base64ct",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/base64ct",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "base64ct",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "standard",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/standard.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "proptests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/proptests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "shacrypt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/shacrypt.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "crypt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/crypt.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bcrypt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/bcrypt.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "url",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/tests/url.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/base64ct-1.6.0/benches/mod.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.6.0"
+        },
+        {
+            "authors": [
+                "Vincent Prouillet <hello@prouilletvincent.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "base64",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.22",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "bcrypt"
+                    ],
+                    "kind": null,
+                    "name": "blowfish",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "subtle",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Easily hash and verify passwords using bcrypt",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "base64/alloc",
+                    "getrandom"
+                ],
+                "default": [
+                    "std",
+                    "zeroize"
+                ],
+                "getrandom": [
+                    "dep:getrandom"
+                ],
+                "js": [
+                    "getrandom/js"
+                ],
+                "std": [
+                    "getrandom/std",
+                    "base64/std"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": "https://github.com/Keats/rust-bcrypt",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bcrypt@0.15.1",
+            "keywords": [
+                "bcrypt",
+                "password",
+                "web",
+                "hash"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bcrypt-0.15.1/Cargo.toml",
+            "metadata": null,
+            "name": "bcrypt",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Keats/rust-bcrypt",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bcrypt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bcrypt-0.15.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.15.1"
+        },
+        {
+            "authors": [
+                "Ty Overby <ty@pre-alpha.com>",
+                "Francesco Mazzoli <f@mazzo.li>",
+                "David Tolnay <dtolnay@gmail.com>",
+                "Zoey Riordan <zoey@dos.cafe>"
+            ],
+            "categories": [
+                "encoding",
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.63",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.27",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A binary serialization / deserialization strategy that uses Serde for transforming structs into bytes and vice versa!",
+            "documentation": "https://docs.rs/bincode",
+            "edition": "2015",
+            "features": {
+                "i128": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bincode@1.3.3",
+            "keywords": [
+                "binary",
+                "encode",
+                "decode",
+                "serialize",
+                "deserialize"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bincode-1.3.3/Cargo.toml",
+            "metadata": null,
+            "name": "bincode",
+            "publish": null,
+            "readme": "./readme.md",
+            "repository": "https://github.com/servo/bincode",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bincode",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bincode-1.3.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bincode-1.3.3/tests/test.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.3.3"
+        },
+        {
+            "authors": [
+                "Alexis Beingessner <a.beingessner@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bit-vec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A set of bits",
+            "documentation": "https://contain-rs.github.io/bit-set/bit_set",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "bit-vec/std"
+                ]
+            },
+            "homepage": "https://github.com/contain-rs/bit-set",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bit-set@0.5.3",
+            "keywords": [
+                "data-structures",
+                "bitset"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bit-set-0.5.3/Cargo.toml",
+            "metadata": null,
+            "name": "bit-set",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/contain-rs/bit-set",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bit_set",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bit-set-0.5.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.3"
+        },
+        {
+            "authors": [
+                "Alexis Beingessner <a.beingessner@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_xorshift",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A vector of bits",
+            "documentation": "https://contain-rs.github.io/bit-vec/bit_vec",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "serde_no_std": [
+                    "serde/alloc"
+                ],
+                "serde_std": [
+                    "std",
+                    "serde/std"
+                ],
+                "std": []
+            },
+            "homepage": "https://github.com/contain-rs/bit-vec",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bit-vec@0.6.3",
+            "keywords": [
+                "data-structures",
+                "bitvec",
+                "bitmask",
+                "bitmap",
+                "bit"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bit-vec-0.6.3/Cargo.toml",
+            "metadata": null,
+            "name": "bit-vec",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/contain-rs/bit-vec",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bit_vec",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bit-vec-0.6.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bit-vec-0.6.3/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.6.3"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers"
+            ],
             "categories": [
                 "no-std"
             ],
@@ -450,7 +6501,7 @@
                 ]
             },
             "homepage": "https://github.com/bitflags/bitflags",
-            "id": "bitflags 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bitflags@1.3.2",
             "keywords": [
                 "bit",
                 "bitmask",
@@ -524,6 +6575,3347 @@
         },
         {
             "authors": [
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytemuck",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "arbitrary",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "bytemuck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "zerocopy",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A macro to generate structures which behave like bitflags.\n",
+            "documentation": "https://docs.rs/bitflags",
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "bytemuck": [
+                    "dep:bytemuck"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "example_generated": [],
+                "rustc-dep-of-std": [
+                    "core",
+                    "compiler_builtins"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": "https://github.com/bitflags/bitflags",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bitflags@2.5.0",
+            "keywords": [
+                "bit",
+                "bitmask",
+                "bitflags",
+                "flags"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "example_generated"
+                        ]
+                    }
+                }
+            },
+            "name": "bitflags",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/bitflags/bitflags",
+            "rust_version": "1.56.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bitflags",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/examples/serde.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "fmt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/examples/fmt.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "custom_bits_type",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/examples/custom_bits_type.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "macro_free",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/examples/macro_free.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "custom_derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/examples/custom_derive.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "parse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitflags-2.5.0/benches/parse.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.5.0"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "data-structures",
+                "embedded",
+                "no-std",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "funty",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "radium",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wyz",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Addresses memory by bits, for packed collections and bitfields",
+            "documentation": "https://docs.rs/bitvec/latest/bitvec",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "atomic": [],
+                "default": [
+                    "atomic",
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "alloc"
+                ],
+                "testing": []
+            },
+            "homepage": "https://bitvecto-rs.github.io/bitvec",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bitvec@1.0.1",
+            "keywords": [
+                "bitfields",
+                "bitmap",
+                "bitstream",
+                "bitvec",
+                "bitvector"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "atomic",
+                            "serde",
+                            "std"
+                        ]
+                    }
+                }
+            },
+            "name": "bitvec",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/bitvecto-rs/bitvec",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bitvec",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "eq",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/eq.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "memcpy",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/memcpy.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "slice",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/slice.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "iter",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/iter.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "mut_access",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/mut_access.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "macros",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bitvec-1.0.1/benches/macros.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.1"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "mac"
+                    ],
+                    "kind": null,
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "dev"
+                    ],
+                    "kind": "dev",
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "BLAKE2 hash functions",
+            "documentation": "https://docs.rs/blake2",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "reset": [],
+                "simd": [],
+                "simd_asm": [
+                    "simd_opt"
+                ],
+                "simd_opt": [
+                    "simd"
+                ],
+                "size_opt": [],
+                "std": [
+                    "digest/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#blake2@0.10.6",
+            "keywords": [
+                "crypto",
+                "blake2",
+                "hash",
+                "digest"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/Cargo.toml",
+            "metadata": null,
+            "name": "blake2",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/hashes",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "blake2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "persona",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/tests/persona.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/tests/mod.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mac",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/tests/mac.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blake2-0.10.6/benches/mod.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.10.6"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "generic-array",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Buffer type for block processing of data",
+            "documentation": "https://docs.rs/block-buffer",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4",
+            "keywords": [
+                "block",
+                "buffer"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/block-buffer-0.10.4/Cargo.toml",
+            "metadata": null,
+            "name": "block-buffer",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/utils",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "block_buffer",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/block-buffer-0.10.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/block-buffer-0.10.4/tests/mod.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.10.4"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "byteorder",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cipher",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "dev"
+                    ],
+                    "kind": "dev",
+                    "name": "cipher",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Blowfish block cipher",
+            "documentation": "https://docs.rs/blowfish",
+            "edition": "2021",
+            "features": {
+                "bcrypt": [],
+                "zeroize": [
+                    "cipher/zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#blowfish@0.9.1",
+            "keywords": [
+                "crypto",
+                "blowfish",
+                "block-cipher"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blowfish-0.9.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "blowfish",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/block-ciphers",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "blowfish",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blowfish-0.9.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blowfish-0.9.1/tests/mod.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/blowfish-0.9.1/benches/mod.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.9.1"
+        },
+        {
+            "authors": [
+                "Near Inc <hello@near.org>"
+            ],
+            "categories": [
+                "encoding",
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ascii",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "borsh-derive",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "~1.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bson",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "hashbrown",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.11, <0.15.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "insta",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.29.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "cfg_aliases",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Binary Object Representation Serializer for Hashing\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "ascii": [
+                    "dep:ascii"
+                ],
+                "borsh-derive": [
+                    "dep:borsh-derive"
+                ],
+                "bson": [
+                    "dep:bson"
+                ],
+                "bytes": [
+                    "dep:bytes"
+                ],
+                "de_strict_order": [],
+                "default": [
+                    "std"
+                ],
+                "derive": [
+                    "borsh-derive"
+                ],
+                "hashbrown": [
+                    "dep:hashbrown"
+                ],
+                "rc": [],
+                "std": [],
+                "unstable__schema": [
+                    "derive",
+                    "borsh-derive/schema"
+                ]
+            },
+            "homepage": "https://borsh.io",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#borsh@1.4.0",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "derive",
+                            "unstable__schema",
+                            "rc"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "borsh",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/near/borsh-rs",
+            "rust_version": "1.67.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "borsh",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bin"
+                    ],
+                    "name": "generate_schema_schema",
+                    "required-features": [
+                        "std",
+                        "unstable__schema"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/src/generate_schema_schema.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "smoke",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/tests/smoke.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "common_macro",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/tests/common_macro.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-1.4.0/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.4.0"
+        },
+        {
+            "authors": [
+                "Near Inc <hello@nearprotocol.com>"
+            ],
+            "categories": [
+                "encoding",
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.18.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro-crate",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full",
+                        "fold"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "syn_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "insta",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.29.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "prettyplease",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full",
+                        "fold",
+                        "parsing"
+                    ],
+                    "kind": "dev",
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Binary Object Representation Serializer for Hashing\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [],
+                "force_exhaustive_checks": [],
+                "schema": []
+            },
+            "homepage": "https://borsh.io",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#borsh-derive@1.4.0",
+            "keywords": [],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-derive-1.4.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "schema"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "borsh-derive",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/nearprotocol/borsh",
+            "rust_version": "1.67.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "borsh_derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/borsh-derive-1.4.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.4.0"
+        },
+        {
+            "authors": [
+                "Nick Fitzgerald <fitzgen@gmail.com>"
+            ],
+            "categories": [
+                "memory-management",
+                "rust-patterns",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "allocator-api2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A fast bump allocation arena for Rust.",
+            "documentation": "https://docs.rs/bumpalo",
+            "edition": "2021",
+            "features": {
+                "allocator-api2": [
+                    "dep:allocator-api2"
+                ],
+                "allocator_api": [],
+                "boxed": [],
+                "collections": [],
+                "default": [],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bumpalo@3.15.4",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "bumpalo",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/fitzgen/bumpalo",
+            "rust_version": "1.73.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bumpalo",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "try_alloc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.4/tests/try_alloc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benches",
+                    "required-features": [
+                        "collections"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bumpalo-3.15.4/benches/benches.rs",
+                    "test": false
+                }
+            ],
+            "version": "3.15.4"
+        },
+        {
+            "authors": [
+                "David Koloski <djkoloski@gmail.com>"
+            ],
+            "categories": [
+                "encoding"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytecheck_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ptr_meta",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "simdutf8",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "uuid",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Derive macro for bytecheck",
+            "documentation": "https://docs.rs/bytecheck",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "simdutf8",
+                    "std"
+                ],
+                "simdutf8": [
+                    "dep:simdutf8"
+                ],
+                "std": [
+                    "ptr_meta/std",
+                    "bytecheck_derive/std",
+                    "simdutf8/std"
+                ],
+                "uuid": [
+                    "dep:uuid"
+                ],
+                "verbose": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bytecheck@0.6.12",
+            "keywords": [
+                "bytecheck",
+                "validation",
+                "zero-copy",
+                "rkyv"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytecheck-0.6.12/Cargo.toml",
+            "metadata": null,
+            "name": "bytecheck",
+            "publish": null,
+            "readme": "crates-io.md",
+            "repository": "https://github.com/djkoloski/bytecheck",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bytecheck",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytecheck-0.6.12/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytecheck-0.6.12/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.6.12"
+        },
+        {
+            "authors": [
+                "David Koloski <djkoloski@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Derive macro for bytecheck",
+            "documentation": "https://docs.rs/bytecheck_derive",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bytecheck_derive@0.6.12",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytecheck_derive-0.6.12/Cargo.toml",
+            "metadata": null,
+            "name": "bytecheck_derive",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/djkoloski/bytecheck",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "bytecheck_derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytecheck_derive-0.6.12/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.6.12"
+        },
+        {
+            "authors": [
+                "Lokathor <zefria@gmail.com>"
+            ],
+            "categories": [
+                "encoding",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytemuck_derive",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A crate for mucking around with piles of bytes.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "aarch64_simd": [],
+                "align_offset": [],
+                "bytemuck_derive": [
+                    "dep:bytemuck_derive"
+                ],
+                "derive": [
+                    "bytemuck_derive"
+                ],
+                "extern_crate_alloc": [],
+                "extern_crate_std": [
+                    "extern_crate_alloc"
+                ],
+                "min_const_generics": [],
+                "must_cast": [],
+                "nightly_docs": [],
+                "nightly_portable_simd": [],
+                "nightly_stdsimd": [],
+                "unsound_ptr_pod_impl": [],
+                "wasm_simd": [],
+                "zeroable_atomics": [],
+                "zeroable_maybe_uninit": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bytemuck@1.15.0",
+            "keywords": [
+                "transmute",
+                "bytes",
+                "casting"
+            ],
+            "license": "Zlib OR Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "nightly_docs",
+                            "derive",
+                            "extern_crate_alloc",
+                            "extern_crate_std",
+                            "zeroable_maybe_uninit",
+                            "zeroable_atomics",
+                            "min_const_generics",
+                            "wasm_simd",
+                            "must_cast"
+                        ]
+                    }
+                },
+                "playground": {
+                    "features": [
+                        "derive",
+                        "extern_crate_alloc",
+                        "extern_crate_std",
+                        "zeroable_maybe_uninit",
+                        "zeroable_atomics",
+                        "min_const_generics",
+                        "wasm_simd",
+                        "must_cast"
+                    ]
+                }
+            },
+            "name": "bytemuck",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Lokathor/bytemuck",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bytemuck",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "wrapper_forgets",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/wrapper_forgets.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/derive.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "array_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/array_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "transparent",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/transparent.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "checked_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/checked_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cast_slice_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/cast_slice_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "doc_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/doc_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "std_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/std_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "offset_of_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytemuck-1.15.0/tests/offset_of_tests.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.15.0"
+        },
+        {
+            "authors": [
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [
+                "encoding",
+                "parsing",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Library for reading/writing numbers in big-endian and little-endian.",
+            "documentation": "https://docs.rs/byteorder",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "i128": [],
+                "std": []
+            },
+            "homepage": "https://github.com/BurntSushi/byteorder",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#byteorder@1.5.0",
+            "keywords": [
+                "byte",
+                "endian",
+                "big-endian",
+                "little-endian",
+                "binary"
+            ],
+            "license": "Unlicense OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/byteorder-1.5.0/Cargo.toml",
+            "metadata": null,
+            "name": "byteorder",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/BurntSushi/byteorder",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "byteorder",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/byteorder-1.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/byteorder-1.5.0/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.5.0"
+        },
+        {
+            "authors": [
+                "Carl Lerche <me@carllerche.com>",
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "network-programming",
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.60",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "loom",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(loom)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Types and traits for working with bytes",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#bytes@1.6.0",
+            "keywords": [
+                "buffers",
+                "zero-copy",
+                "io"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "bytes",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/tokio-rs/bytes",
+            "rust_version": "1.39",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "bytes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_buf",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_buf.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_bytes_odd_alloc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_bytes_odd_alloc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_bytes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_bytes.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_debug",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_debug.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_iter",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_iter.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_reader",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_reader.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_bytes_vec_alloc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_bytes_vec_alloc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_chain",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_chain.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_buf_mut",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_buf_mut.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_take",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/tests/test_take.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "buf",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/benches/buf.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bytes_mut",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/benches/bytes_mut.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bytes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/bytes-1.6.0/benches/bytes.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.6.0"
+        },
+        {
+            "authors": [
+                "Alex Crichton <alex@alexcrichton.com>"
+            ],
+            "categories": [
+                "development-tools::build-utils"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "jobserver",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.20",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tempfile",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.62",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(unix)",
+                    "uses_default_features": false
+                }
+            ],
+            "description": "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n",
+            "documentation": "https://docs.rs/cc",
+            "edition": "2018",
+            "features": {
+                "jobserver": [
+                    "dep:jobserver"
+                ],
+                "libc": [
+                    "dep:libc"
+                ],
+                "parallel": [
+                    "libc",
+                    "jobserver"
+                ]
+            },
+            "homepage": "https://github.com/rust-lang/cc-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cc@1.0.90",
+            "keywords": [
+                "build-dependencies"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.90/Cargo.toml",
+            "metadata": null,
+            "name": "cc",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/cc-rs",
+            "rust_version": "1.53",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cc-1.0.90/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.90"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "compilers",
+                "config"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cedar-policy-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=2.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cedar-policy-validator",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=2.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "dhat",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "lexer"
+                    ],
+                    "kind": null,
+                    "name": "lalrpop-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.20.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ref-cast",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive",
+                        "rc"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "serde"
+                    ],
+                    "kind": null,
+                    "name": "smol_str",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thiserror",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "cool_asserts",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "globset",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Cedar is a language for defining permissions as policies, which describe who should have access to what.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "corpus-timing": [],
+                "decimal": [
+                    "cedar-policy-core/decimal",
+                    "cedar-policy-validator/decimal"
+                ],
+                "default": [
+                    "ipaddr",
+                    "decimal"
+                ],
+                "experimental": [
+                    "partial-eval"
+                ],
+                "heap-profiling": [
+                    "dep:dhat"
+                ],
+                "integration_testing": [],
+                "ipaddr": [
+                    "cedar-policy-core/ipaddr",
+                    "cedar-policy-validator/ipaddr"
+                ],
+                "partial-eval": [
+                    "cedar-policy-core/partial-eval"
+                ]
+            },
+            "homepage": "https://cedarpolicy.com",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cedar-policy@2.4.2",
+            "keywords": [
+                "cedar",
+                "authorization",
+                "policy",
+                "security"
+            ],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/Cargo.toml",
+            "metadata": null,
+            "name": "cedar-policy",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/cedar-policy/cedar",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "rlib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "rlib"
+                    ],
+                    "name": "cedar_policy",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "decimal",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/decimal.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "corpus_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/corpus_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "multi",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/multi.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ip",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/ip.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "example_use_cases_doc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/example_use_cases_doc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "public_interface",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/tests/public_interface.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "cedar_benchmarks",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-2.4.2/benches/cedar_benchmarks.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.4.2"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "compilers",
+                "config"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "either",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ipnet",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.5.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "lexer"
+                    ],
+                    "kind": null,
+                    "name": "lalrpop-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.20.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "miette",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^5.9.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "unicode"
+                    ],
+                    "kind": null,
+                    "name": "regex",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc_lexer",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive",
+                        "rc"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "json"
+                    ],
+                    "kind": null,
+                    "name": "serde_with",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "serde"
+                    ],
+                    "kind": null,
+                    "name": "smol_str",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "stacker",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thiserror",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "cool_asserts",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "lalrpop",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.20.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Core implemenation of the Cedar Policy language.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "decimal": [
+                    "dep:regex"
+                ],
+                "default": [
+                    "ipaddr",
+                    "decimal"
+                ],
+                "ipaddr": [
+                    "dep:ipnet"
+                ],
+                "partial-eval": []
+            },
+            "homepage": "https://cedarpolicy.com",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cedar-policy-core@2.4.2",
+            "keywords": [
+                "cedar",
+                "authorization",
+                "policy",
+                "security"
+            ],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-core-2.4.2/Cargo.toml",
+            "metadata": null,
+            "name": "cedar-policy-core",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/cedar-policy/cedar",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cedar_policy_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-core-2.4.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-core-2.4.2/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.4.2"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "compilers",
+                "config"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cedar-policy-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=2.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "preserve_order"
+                    ],
+                    "kind": null,
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde_with",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "serde"
+                    ],
+                    "kind": null,
+                    "name": "smol_str",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "stacker",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thiserror",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicode-security",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Validator for the Cedar Policy language.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "decimal": [
+                    "cedar-policy-core/decimal"
+                ],
+                "default": [
+                    "ipaddr",
+                    "decimal"
+                ],
+                "ipaddr": [
+                    "cedar-policy-core/ipaddr"
+                ]
+            },
+            "homepage": "https://cedarpolicy.com",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cedar-policy-validator@2.4.2",
+            "keywords": [
+                "cedar",
+                "authorization",
+                "policy",
+                "security"
+            ],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-validator-2.4.2/Cargo.toml",
+            "metadata": null,
+            "name": "cedar-policy-validator",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/cedar-policy/cedar",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cedar_policy_validator",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cedar-policy-validator-2.4.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.4.2"
+        },
+        {
+            "authors": [
                 "Alex Crichton <alex@alexcrichton.com>"
             ],
             "categories": [],
@@ -570,7 +9962,7 @@
                 ]
             },
             "homepage": "https://github.com/alexcrichton/cfg-if",
-            "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.0",
             "keywords": [],
             "license": "MIT/Apache-2.0",
             "license_file": null,
@@ -594,7 +9986,7 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "cfg-if",
+                    "name": "cfg_if",
                     "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cfg-if-1.0.0/src/lib.rs",
                     "test": true
                 },
@@ -616,6 +10008,575 @@
             "version": "1.0.0"
         },
         {
+            "authors": [
+                "Zicklag <zicklag@katharostech.com>"
+            ],
+            "categories": [
+                "development-tools",
+                "development-tools::build-utils"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "A tiny utility to help save you a lot of effort with long winded `#[cfg()]` checks.",
+            "documentation": "https://docs.rs/cfg_aliases",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://github.com/katharostech/cfg_aliases",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cfg_aliases@0.1.1",
+            "keywords": [
+                "cfg",
+                "alias",
+                "conditional",
+                "compilation",
+                "build"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cfg_aliases-0.1.1/Cargo.toml",
+            "metadata": null,
+            "name": "cfg_aliases",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/katharostech/cfg_aliases",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cfg_aliases",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cfg_aliases-0.1.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.1"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "date-and-time"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pure-rust-locales",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rkyv",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.43",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-serialize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.20",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.99",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "js-sys",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"wasm32\", not(any(target_os = \"emscripten\", target_os = \"wasi\"))))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wasm-bindgen",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"wasm32\", not(any(target_os = \"emscripten\", target_os = \"wasi\"))))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"wasm32\", not(any(target_os = \"emscripten\", target_os = \"wasi\"))))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "android-tzdata",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"android\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "fallback"
+                    ],
+                    "kind": null,
+                    "name": "iana-time-zone",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.45",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(unix)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "windows-targets",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.52",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "windows-bindgen",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.55",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Date and time library for Rust",
+            "documentation": "https://docs.rs/chrono/",
+            "edition": "2021",
+            "features": {
+                "__internal_bench": [],
+                "alloc": [],
+                "android-tzdata": [
+                    "dep:android-tzdata"
+                ],
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "clock": [
+                    "winapi",
+                    "iana-time-zone",
+                    "android-tzdata",
+                    "now"
+                ],
+                "default": [
+                    "clock",
+                    "std",
+                    "oldtime",
+                    "wasmbind"
+                ],
+                "iana-time-zone": [
+                    "dep:iana-time-zone"
+                ],
+                "js-sys": [
+                    "dep:js-sys"
+                ],
+                "libc": [],
+                "now": [
+                    "std"
+                ],
+                "oldtime": [],
+                "pure-rust-locales": [
+                    "dep:pure-rust-locales"
+                ],
+                "rkyv": [
+                    "dep:rkyv",
+                    "rkyv/size_32"
+                ],
+                "rkyv-16": [
+                    "dep:rkyv",
+                    "rkyv?/size_16"
+                ],
+                "rkyv-32": [
+                    "dep:rkyv",
+                    "rkyv?/size_32"
+                ],
+                "rkyv-64": [
+                    "dep:rkyv",
+                    "rkyv?/size_64"
+                ],
+                "rkyv-validation": [
+                    "rkyv?/validation"
+                ],
+                "rustc-serialize": [
+                    "dep:rustc-serialize"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "alloc"
+                ],
+                "unstable-locales": [
+                    "pure-rust-locales"
+                ],
+                "wasm-bindgen": [
+                    "dep:wasm-bindgen"
+                ],
+                "wasmbind": [
+                    "wasm-bindgen",
+                    "js-sys"
+                ],
+                "winapi": [
+                    "windows-targets"
+                ],
+                "windows-targets": [
+                    "dep:windows-targets"
+                ]
+            },
+            "homepage": "https://github.com/chronotope/chrono",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#chrono@0.4.37",
+            "keywords": [
+                "date",
+                "time",
+                "calendar"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.37/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "arbitrary",
+                            "rkyv",
+                            "serde",
+                            "unstable-locales"
+                        ],
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                },
+                "playground": {
+                    "features": [
+                        "serde"
+                    ]
+                }
+            },
+            "name": "chrono",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/chronotope/chrono",
+            "rust_version": "1.61.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "chrono",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.37/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "win_bindings",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.37/tests/win_bindings.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "dateutils",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.37/tests/dateutils.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "wasm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/chrono-0.4.37/tests/wasm.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.37"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "blobby",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "crypto-common",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "inout",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Traits for describing block ciphers and stream ciphers",
+            "documentation": "https://docs.rs/cipher",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "blobby": [
+                    "dep:blobby"
+                ],
+                "block-padding": [
+                    "inout/block-padding"
+                ],
+                "dev": [
+                    "blobby"
+                ],
+                "rand_core": [
+                    "crypto-common/rand_core"
+                ],
+                "std": [
+                    "alloc",
+                    "crypto-common/std",
+                    "inout/std"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cipher@0.4.4",
+            "keywords": [
+                "crypto",
+                "block-cipher",
+                "stream-cipher",
+                "trait"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cipher-0.4.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "cipher",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/traits",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cipher",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cipher-0.4.4/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.4"
+        },
+        {
             "authors": [],
             "categories": [
                 "command-line-interface"
@@ -957,7 +10918,7 @@
                 ]
             },
             "homepage": null,
-            "id": "clap 3.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#clap@3.1.5",
             "keywords": [
                 "argument",
                 "cli",
@@ -2012,7 +11973,7 @@
                 "default": []
             },
             "homepage": null,
-            "id": "clap_derive 3.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#clap_derive@3.1.4",
             "keywords": [
                 "clap",
                 "cli",
@@ -2073,6 +12034,1091 @@
         },
         {
             "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>",
+                "Taiki Endo <te316e89@gmail.com>",
+                "John Nunley <jtnunley01@gmail.com>"
+            ],
+            "categories": [
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "crossbeam-utils",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "portable-atomic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "easy-parallel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fastrand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "loom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(loom)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Concurrent multi-producer multi-consumer queue",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "loom": [
+                    "dep:loom"
+                ],
+                "portable-atomic": [
+                    "dep:portable-atomic"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#concurrent-queue@2.4.0",
+            "keywords": [
+                "channel",
+                "mpmc",
+                "spsc",
+                "spmc",
+                "mpsc"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/Cargo.toml",
+            "metadata": null,
+            "name": "concurrent-queue",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/concurrent-queue",
+            "rust_version": "1.59",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "concurrent_queue",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unbounded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/unbounded.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "single",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/single.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bounded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/bounded.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "loom",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/tests/loom.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/concurrent-queue-2.4.0/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.4.0"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "data-structures",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard\nas defined in ITU X.660, with support for BER/DER encoding/decoding as well as\nheapless no_std (i.e. embedded) support\n",
+            "documentation": "https://docs.rs/const-oid",
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "db": [],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#const-oid@0.9.6",
+            "keywords": [
+                "iso",
+                "iec",
+                "itu",
+                "oid"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/const-oid-0.9.6/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "const-oid",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/const-oid",
+            "rust_version": "1.57",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "const_oid",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/const-oid-0.9.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "lib",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/const-oid-0.9.6/tests/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.9.6"
+        },
+        {
+            "authors": [
+                "The Servo Project Developers"
+            ],
+            "categories": [
+                "os::macos-apis"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "chrono",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "core-foundation-sys",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "uuid",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Bindings to Core Foundation for macOS",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "chrono": [
+                    "dep:chrono"
+                ],
+                "default": [
+                    "link"
+                ],
+                "link": [
+                    "core-foundation-sys/link"
+                ],
+                "mac_os_10_7_support": [
+                    "core-foundation-sys/mac_os_10_7_support"
+                ],
+                "mac_os_10_8_features": [
+                    "core-foundation-sys/mac_os_10_8_features"
+                ],
+                "uuid": [
+                    "dep:uuid"
+                ],
+                "with-chrono": [
+                    "chrono"
+                ],
+                "with-uuid": [
+                    "uuid"
+                ]
+            },
+            "homepage": "https://github.com/servo/core-foundation-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#core-foundation@0.9.4",
+            "keywords": [
+                "macos",
+                "framework",
+                "objc"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-0.9.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "default-target": "x86_64-apple-darwin"
+                    }
+                }
+            },
+            "name": "core-foundation",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/servo/core-foundation-rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "core_foundation",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-0.9.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "use_macro_outside_crate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-0.9.4/tests/use_macro_outside_crate.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.9.4"
+        },
+        {
+            "authors": [
+                "The Servo Project Developers"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Bindings to Core Foundation for macOS",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "link"
+                ],
+                "link": [],
+                "mac_os_10_7_support": [],
+                "mac_os_10_8_features": []
+            },
+            "homepage": "https://github.com/servo/core-foundation-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#core-foundation-sys@0.8.6",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-sys-0.8.6/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "default-target": "x86_64-apple-darwin"
+                    }
+                }
+            },
+            "name": "core-foundation-sys",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/servo/core-foundation-rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "core_foundation_sys",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/core-foundation-sys-0.8.6/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.8.6"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "hardware-support",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "aarch64-linux-android",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"aarch64\", target_vendor = \"apple\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(target_arch = \"loongarch64\", target_os = \"linux\"))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Lightweight runtime CPU feature detection for aarch64, loongarch64, and x86/x86_64 targets, \nwith no_std support and support for mobile targets including Android and iOS\n",
+            "documentation": "https://docs.rs/cpufeatures",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.12",
+            "keywords": [
+                "cpuid",
+                "target-feature"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cpufeatures-0.2.12/Cargo.toml",
+            "metadata": null,
+            "name": "cpufeatures",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/utils",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "cpufeatures",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cpufeatures-0.2.12/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "loongarch64",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cpufeatures-0.2.12/tests/loongarch64.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "x86",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cpufeatures-0.2.12/tests/x86.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "aarch64",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/cpufeatures-0.2.12/tests/aarch64.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.12"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "embedded",
+                "no-std",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Cross-platform critical section",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "restore-state-bool": [],
+                "restore-state-none": [],
+                "restore-state-u16": [],
+                "restore-state-u32": [],
+                "restore-state-u64": [],
+                "restore-state-u8": [],
+                "std": [
+                    "restore-state-bool"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#critical-section@1.1.2",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/critical-section-1.1.2/Cargo.toml",
+            "metadata": null,
+            "name": "critical-section",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-embedded/critical-section",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "critical_section",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/critical-section-1.1.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.1.2"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "algorithms",
+                "concurrency",
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "loom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(crossbeam_loom)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Utilities for concurrent programming",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "loom": [
+                    "dep:loom"
+                ],
+                "nightly": [],
+                "std": []
+            },
+            "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#crossbeam-utils@0.8.19",
+            "keywords": [
+                "scoped",
+                "thread",
+                "atomic",
+                "cache"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/Cargo.toml",
+            "metadata": null,
+            "name": "crossbeam-utils",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/crossbeam-rs/crossbeam",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "crossbeam_utils",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "wait_group",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/wait_group.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "sharded_lock",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/sharded_lock.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "thread",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/thread.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cache_padded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/cache_padded.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "atomic_cell",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/atomic_cell.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "parker",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/tests/parker.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "atomic_cell",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/benches/atomic_cell.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.19/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.8.19"
+        },
+        {
+            "authors": [
+                "Vurich <jackefransham@hotmail.co.uk>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Crunchy unroller: deterministically unroll constant loops",
+            "documentation": null,
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "limit_128"
+                ],
+                "limit_1024": [],
+                "limit_128": [],
+                "limit_2048": [],
+                "limit_256": [],
+                "limit_512": [],
+                "limit_64": [],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#crunchy@0.2.2",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crunchy-0.2.2/Cargo.toml",
+            "metadata": null,
+            "name": "crunchy",
+            "publish": null,
+            "readme": "README.md",
+            "repository": null,
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "crunchy",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crunchy-0.2.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crunchy-0.2.2/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.2"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "more_lengths"
+                    ],
+                    "kind": null,
+                    "name": "generic-array",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand_core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "typenum",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Common cryptographic traits",
+            "documentation": "https://docs.rs/crypto-common",
+            "edition": "2018",
+            "features": {
+                "getrandom": [
+                    "rand_core/getrandom"
+                ],
+                "rand_core": [
+                    "dep:rand_core"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.6",
+            "keywords": [
+                "crypto",
+                "traits"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crypto-common-0.1.6/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "crypto-common",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/traits",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "crypto_common",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/crypto-common-0.1.6/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.6"
+        },
+        {
+            "authors": [
                 "Matt Mastracci <matthew@mastracci.com>"
             ],
             "categories": [],
@@ -2125,7 +13171,7 @@
             "edition": "2018",
             "features": {},
             "homepage": null,
-            "id": "ctor 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ctor@0.1.21",
             "keywords": [],
             "license": "Apache-2.0 OR MIT",
             "license_file": null,
@@ -2172,6 +13218,8543 @@
         },
         {
             "authors": [
+                "Ted Driggs <ted.driggs@outlook.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "darling_core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.20.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "darling_macro",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.20.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.37",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.18",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(compiletests)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.38",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(compiletests)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A proc-macro library for reading attributes into structs when\nimplementing custom derives.\n",
+            "documentation": "https://docs.rs/darling/0.20.8",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "suggestions"
+                ],
+                "diagnostics": [
+                    "darling_core/diagnostics"
+                ],
+                "suggestions": [
+                    "darling_core/suggestions"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#darling@0.20.8",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/Cargo.toml",
+            "metadata": null,
+            "name": "darling",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/TedDriggs/darling",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "darling",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "consume_fields",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/consume_fields.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "automatic_bounds",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/automatic_bounds.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "shorthand_or_long_field",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/shorthand_or_long_field.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "fallible_read",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/fallible_read.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "supports_struct",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/supports_struct.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "heterogeneous_enum_and_word",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/heterogeneous_enum_and_word.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "expr_with",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/examples/expr_with.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "flatten_error_accumulation",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/flatten_error_accumulation.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "from_variant",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/from_variant.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "from_type_param",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/from_type_param.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "flatten_from_field",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/flatten_from_field.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "supports",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/supports.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "from_type_param_default",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/from_type_param_default.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "attrs_with",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/attrs_with.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "enums_default",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/enums_default.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "multiple",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/multiple.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "error",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/error.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "flatten",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/flatten.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "suggestions",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/suggestions.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "from_generics",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/from_generics.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "happy_path",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/happy_path.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "custom_bound",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/custom_bound.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "enums_newtype",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/enums_newtype.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "skip",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/skip.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unsupported_attributes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/unsupported_attributes.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "generics",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/generics.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "newtype",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/newtype.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "hash_map",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/hash_map.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "accrue_errors",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/accrue_errors.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "enums_struct",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/enums_struct.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/compiletests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "defaults",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/defaults.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "split_declaration",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/split_declaration.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "computed_bound",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/computed_bound.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "enums_unit",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/enums_unit.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "from_meta",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling-0.20.8/tests/from_meta.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.20.8"
+        },
+        {
+            "authors": [
+                "Ted Driggs <ted.driggs@outlook.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ident_case",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.37",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.18",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "strsim",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full",
+                        "extra-traits"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Helper crate for proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "diagnostics": [],
+                "strsim": [
+                    "dep:strsim"
+                ],
+                "suggestions": [
+                    "strsim"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#darling_core@0.20.8",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling_core-0.20.8/Cargo.toml",
+            "metadata": null,
+            "name": "darling_core",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/TedDriggs/darling",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "darling_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling_core-0.20.8/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.20.8"
+        },
+        {
+            "authors": [
+                "Ted Driggs <ted.driggs@outlook.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "darling_core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.20.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.18",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Internal support for a proc-macro library for reading attributes into structs when\nimplementing custom derives. Use https://crates.io/crates/darling in your code.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#darling_macro@0.20.8",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling_macro-0.20.8/Cargo.toml",
+            "metadata": null,
+            "name": "darling_macro",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/TedDriggs/darling",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "darling_macro",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/darling_macro-0.20.8/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.20.8"
+        },
+        {
+            "authors": [
+                "Julien Cretin <git@ia0.eu>"
+            ],
+            "categories": [
+                "encoding",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Efficient and customizable data-encoding functions like base64, base32, and hex",
+            "documentation": "https://docs.rs/data-encoding",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#data-encoding@2.5.0",
+            "keywords": [
+                "no_std",
+                "base64",
+                "base32",
+                "hex"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/data-encoding-2.5.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--cfg=docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "data-encoding",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/ia0/data-encoding",
+            "rust_version": "1.48",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "data_encoding",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/data-encoding-2.5.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.5.0"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "data-structures",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "const-oid",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "der_derive",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "flagset",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "pem-rfc7468",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "time",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proptest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Pure Rust embedded-friendly implementation of the Distinguished Encoding Rules\n(DER) for Abstract Syntax Notation One (ASN.1) as described in ITU X.690 with\nfull support for heapless no_std targets\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "zeroize?/alloc"
+                ],
+                "arbitrary": [
+                    "dep:arbitrary",
+                    "const-oid?/arbitrary",
+                    "std"
+                ],
+                "bytes": [
+                    "dep:bytes",
+                    "alloc"
+                ],
+                "derive": [
+                    "dep:der_derive"
+                ],
+                "flagset": [
+                    "dep:flagset"
+                ],
+                "oid": [
+                    "dep:const-oid"
+                ],
+                "pem": [
+                    "dep:pem-rfc7468",
+                    "alloc",
+                    "zeroize"
+                ],
+                "real": [],
+                "std": [
+                    "alloc"
+                ],
+                "time": [
+                    "dep:time"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#der@0.7.9",
+            "keywords": [
+                "asn1",
+                "crypto",
+                "itu",
+                "pkcs"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "der",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/der",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "der",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/tests/derive.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "set_of",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/tests/set_of.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "pem",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/tests/pem.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "datetime",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/der-0.7.9/tests/datetime.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.9"
+        },
+        {
+            "authors": [
+                "Jacob Pratt <jacob@jhpratt.dev>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.15",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "powerfmt",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quickcheck",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.126",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.86",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Ranged integers",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "num": [
+                    "dep:num-traits"
+                ],
+                "powerfmt": [
+                    "dep:powerfmt"
+                ],
+                "quickcheck": [
+                    "dep:quickcheck",
+                    "alloc"
+                ],
+                "rand": [
+                    "dep:rand"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#deranged@0.3.11",
+            "keywords": [
+                "integer",
+                "int",
+                "range"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/deranged-0.3.11/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docs_rs"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "deranged",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/jhpratt/deranged",
+            "rust_version": "1.67.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "deranged",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/deranged-0.3.11/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.11"
+        },
+        {
+            "authors": [
+                "Kornel Lesinski <kornel@geekhood.net>",
+                "Amit Chowdhury <amitc97@gmail.com>"
+            ],
+            "categories": [
+                "text-processing",
+                "internationalization"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Convert Unicode strings to pure ASCII by intelligently transliterating them. Suppors Emoji and Chinese.",
+            "documentation": "https://docs.rs/deunicode",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "alloc"
+                ]
+            },
+            "homepage": "https://lib.rs/crates/deunicode",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#deunicode@1.4.3",
+            "keywords": [
+                "unidecode",
+                "emoji",
+                "Unicode",
+                "ASCII",
+                "transliteration"
+            ],
+            "license": "BSD-3-Clause",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/deunicode-1.4.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "deunicode",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/kornelski/deunicode/",
+            "rust_version": "1.64",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "deunicode",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/deunicode-1.4.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.4.3"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "blobby",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "block-buffer",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "const-oid",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "crypto-common",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "subtle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Traits for cryptographic hash functions and message authentication codes",
+            "documentation": "https://docs.rs/digest",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "blobby": [
+                    "dep:blobby"
+                ],
+                "block-buffer": [
+                    "dep:block-buffer"
+                ],
+                "const-oid": [
+                    "dep:const-oid"
+                ],
+                "core-api": [
+                    "block-buffer"
+                ],
+                "default": [
+                    "core-api"
+                ],
+                "dev": [
+                    "blobby"
+                ],
+                "mac": [
+                    "subtle"
+                ],
+                "oid": [
+                    "const-oid"
+                ],
+                "rand_core": [
+                    "crypto-common/rand_core"
+                ],
+                "std": [
+                    "alloc",
+                    "crypto-common/std"
+                ],
+                "subtle": [
+                    "dep:subtle"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7",
+            "keywords": [
+                "digest",
+                "crypto",
+                "hash"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/digest-0.10.7/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "digest",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/traits",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "digest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/digest-0.10.7/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.10.7"
+        },
+        {
+            "authors": [
+                "The @xdg-rs members"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "dirs-sys-next",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A tiny low-level library that provides platform-specific standard locations\nof directories for config, cache and other data on Linux, Windows, macOS\nand Redox by leveraging the mechanisms defined by the XDG base/user\ndirectory specifications on Linux, the Known Folder API on Windows,\nand the Standard Directory guidelines on macOS.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#dirs-next@2.0.0",
+            "keywords": [
+                "xdg",
+                "basedir",
+                "app_dirs",
+                "path",
+                "folder"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dirs-next-2.0.0/Cargo.toml",
+            "metadata": null,
+            "name": "dirs-next",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/xdg-rs/dirs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "dirs_next",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dirs-next-2.0.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.0.0"
+        },
+        {
+            "authors": [
+                "The @xdg-rs members"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "redox_users",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"redox\")",
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(unix)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "knownfolders",
+                        "objbase",
+                        "shlobj",
+                        "winbase",
+                        "winerror"
+                    ],
+                    "kind": null,
+                    "name": "winapi",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "system-level helper functions for the dirs and directories crates",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#dirs-sys-next@0.1.2",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dirs-sys-next-0.1.2/Cargo.toml",
+            "metadata": null,
+            "name": "dirs-sys-next",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/xdg-rs/dirs/tree/master/dirs-sys",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "dirs_sys_next",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dirs-sys-next-0.1.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.2"
+        },
+        {
+            "authors": [
+                "Tobie Morgan Hitchcock <tobie@surrealdb.com>"
+            ],
+            "categories": [
+                "algorithms",
+                "text-editors",
+                "text-processing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "urlencoding",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A high-performance library in that manipulates plain text",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": "https://github.com/surrealdb/dmp",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#dmp@0.2.0",
+            "keywords": [
+                "dmp",
+                "diff",
+                "diff-match-patch"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dmp-0.2.0/Cargo.toml",
+            "metadata": null,
+            "name": "dmp",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/surrealdb/dmp",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "dmp",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/dmp-0.2.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.0"
+        },
+        {
+            "authors": [
+                "Guillaume Gomez <guillaume1.gomez@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Macro to generate doc comments",
+            "documentation": "http://docs.rs/crate/doc-comment",
+            "edition": "2015",
+            "features": {
+                "no_core": [],
+                "old_macros": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#doc-comment@0.3.3",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/Cargo.toml",
+            "metadata": null,
+            "name": "doc-comment",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/GuillaumeGomez/doc-comment",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "doc_comment",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/doc-comment-0.3.3/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.3"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.188",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.188",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.107",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "port of MapBox's earcut triangulation code to Rust language",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#earcutr@0.4.3",
+            "keywords": [],
+            "license": "ISC",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/earcutr-0.4.3/Cargo.toml",
+            "metadata": null,
+            "name": "earcutr",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/frewsxcv/earcutr/",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "earcutr",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/earcutr-0.4.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "main",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/earcutr-0.4.3/examples/main.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration_test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/earcutr-0.4.3/tests/integration_test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "speedtest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/earcutr-0.4.3/benches/speedtest.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.3"
+        },
+        {
+            "authors": [
+                "bluss"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases.\n",
+            "documentation": "https://docs.rs/either/1/",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "use_std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "use_std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#either@1.10.0",
+            "keywords": [
+                "data-structure",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/either-1.10.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "serde"
+                        ]
+                    }
+                },
+                "release": {
+                    "no-dev-version": true,
+                    "tag-name": "{{version}}"
+                }
+            },
+            "name": "either",
+            "publish": null,
+            "readme": "README-crates.io.md",
+            "repository": "https://github.com/rayon-rs/either",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "either",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/either-1.10.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.10.0"
+        },
+        {
+            "authors": [
+                "Niko Matsakis <niko@alum.mit.edu>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "dogged",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Union-find, congruence closure, and other unification code. Based on code from rustc.",
+            "documentation": null,
+            "edition": "2015",
+            "features": {
+                "bench": [],
+                "dogged": [
+                    "dep:dogged"
+                ],
+                "persistent": [
+                    "dogged"
+                ]
+            },
+            "homepage": "https://github.com/rust-lang/ena",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ena@0.14.2",
+            "keywords": [
+                "unification",
+                "union-find"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ena-0.14.2/Cargo.toml",
+            "metadata": null,
+            "name": "ena",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/ena",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ena",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ena-0.14.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "external_undo_log",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ena-0.14.2/tests/external_undo_log.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.14.2"
+        },
+        {
+            "authors": [
+                "Henri Sivonen <hsivonen@hsivonen.fi>"
+            ],
+            "categories": [
+                "text-processing",
+                "encoding",
+                "web-programming",
+                "internationalization"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "packed_simd",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Gecko-oriented implementation of the Encoding Standard",
+            "documentation": "https://docs.rs/encoding_rs/",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "alloc"
+                ],
+                "fast-big5-hanzi-encode": [],
+                "fast-gb-hanzi-encode": [],
+                "fast-hangul-encode": [],
+                "fast-hanja-encode": [],
+                "fast-kanji-encode": [],
+                "fast-legacy-encode": [
+                    "fast-hangul-encode",
+                    "fast-hanja-encode",
+                    "fast-kanji-encode",
+                    "fast-gb-hanzi-encode",
+                    "fast-big5-hanzi-encode"
+                ],
+                "less-slow-big5-hanzi-encode": [],
+                "less-slow-gb-hanzi-encode": [],
+                "less-slow-kanji-encode": [],
+                "packed_simd": [
+                    "dep:packed_simd"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "simd-accel": [
+                    "packed_simd",
+                    "packed_simd/into_bits"
+                ]
+            },
+            "homepage": "https://docs.rs/encoding_rs/",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#encoding_rs@0.8.33",
+            "keywords": [
+                "encoding",
+                "web",
+                "unicode",
+                "charset"
+            ],
+            "license": "(Apache-2.0 OR MIT) AND BSD-3-Clause",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs-0.8.33/Cargo.toml",
+            "metadata": null,
+            "name": "encoding_rs",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hsivonen/encoding_rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "encoding_rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/encoding_rs-0.8.33/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.8.33"
+        },
+        {
+            "authors": [
+                "Lolirofle <lolipopple@hotmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Type safe wrappers for types with a defined byte order",
+            "documentation": null,
+            "edition": "2015",
+            "features": {},
+            "homepage": "https://github.com/Lolirofle/endian-type",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#endian-type@0.1.2",
+            "keywords": [
+                "endian",
+                "byteorder"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/endian-type-0.1.2/Cargo.toml",
+            "metadata": null,
+            "name": "endian-type",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/Lolirofle/endian-type.git",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "endian_type",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/endian-type-0.1.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.2"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Traits for key comparison in maps.",
+            "documentation": null,
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.1",
+            "keywords": [
+                "hashmap",
+                "no_std"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/equivalent-1.0.1/Cargo.toml",
+            "metadata": null,
+            "name": "equivalent",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/cuviper/equivalent",
+            "rust_version": "1.6",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "equivalent",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/equivalent-1.0.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.1"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "waker-fn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Notify async tasks or threads",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#event-listener@2.5.3",
+            "keywords": [
+                "condvar",
+                "eventcount",
+                "wake",
+                "blocking",
+                "park"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/Cargo.toml",
+            "metadata": null,
+            "name": "event-listener",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/event-listener",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "event_listener",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "mutex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/examples/mutex.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "notify",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-2.5.3/tests/notify.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.5.3"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "concurrent-queue",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "portable-atomic-util",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "portable-atomic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "portable_atomic_crate",
+                    "req": "^1.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "cargo_bench_support"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "waker-fn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(target_family = \"wasm\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_family = \"wasm\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Notify async tasks or threads",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "parking": [
+                    "dep:parking"
+                ],
+                "portable-atomic": [
+                    "portable-atomic-util",
+                    "portable_atomic_crate"
+                ],
+                "portable-atomic-util": [
+                    "dep:portable-atomic-util"
+                ],
+                "portable_atomic_crate": [
+                    "dep:portable_atomic_crate"
+                ],
+                "std": [
+                    "concurrent-queue/std",
+                    "parking"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#event-listener@4.0.3",
+            "keywords": [
+                "condvar",
+                "eventcount",
+                "wake",
+                "blocking",
+                "park"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/Cargo.toml",
+            "metadata": null,
+            "name": "event-listener",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/event-listener",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "event_listener",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "mutex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/examples/mutex.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "notify",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/tests/notify.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-4.0.3/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "4.0.3"
+        },
+        {
+            "authors": [
+                "John Nunley <dev@notgull.net>"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "event-listener",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.37",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_family = \"wasm\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Block or poll on event_listener easily",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "event-listener/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#event-listener-strategy@0.4.0",
+            "keywords": [
+                "condvar",
+                "envcount",
+                "wake",
+                "blocking",
+                "park"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "event-listener-strategy",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/event-listener",
+            "rust_version": "1.59",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "event_listener_strategy",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "easy_wrapper",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/event-listener-strategy-0.4.0/tests/easy_wrapper.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.0"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>"
+            ],
+            "categories": [
+                "algorithms"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "getrandom",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wyhash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "js"
+                    ],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "js"
+                    ],
+                    "kind": "dev",
+                    "name": "getrandom",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A simple and fast random number generator",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "getrandom": [
+                    "dep:getrandom"
+                ],
+                "js": [
+                    "std",
+                    "getrandom"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#fastrand@2.0.2",
+            "keywords": [
+                "simple",
+                "fast",
+                "rand",
+                "random",
+                "wyrand"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "fastrand",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/fastrand",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "fastrand",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "char",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.2/tests/char.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "smoke",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.2/tests/smoke.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fastrand-2.0.2/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.0.2"
+        },
+        {
+            "authors": [
+                "bluss"
+            ],
+            "categories": [
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "FixedBitSet is a simple bitset collection",
+            "documentation": "https://docs.rs/fixedbitset/",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#fixedbitset@0.4.2",
+            "keywords": [
+                "container",
+                "data-structure",
+                "bitvec",
+                "bitset",
+                "no_std"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fixedbitset-0.4.2/Cargo.toml",
+            "metadata": {
+                "release": {
+                    "no-dev-version": true,
+                    "tag-name": "{{version}}"
+                }
+            },
+            "name": "fixedbitset",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/petgraph/fixedbitset",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "fixedbitset",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fixedbitset-0.4.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benches",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fixedbitset-0.4.2/benches/benches.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.2"
+        },
+        {
+            "authors": [
+                "Bronson Brown-deVost <bronsonbdevost@gmail.com>"
+            ],
+            "categories": [
+                "mathematics",
+                "algorithms"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "html_reports"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fastrand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A trait for native rust f64/f32 nextafter",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://gitlab.com/bronsonbdevost/next_afterf",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#float_next_after@1.0.0",
+            "keywords": [
+                "float",
+                "f64",
+                "f32",
+                "nextafter",
+                "increment"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/float_next_after-1.0.0/Cargo.toml",
+            "metadata": null,
+            "name": "float_next_after",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://gitlab.com/bronsonbdevost/next_afterf",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "float_next_after",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/float_next_after-1.0.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/float_next_after-1.0.0/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.0"
+        },
+        {
+            "authors": [
+                "Joshua Barretto <joshua.s.barretto@gmail.com>"
+            ],
+            "categories": [
+                "concurrency",
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-sink",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "getrandom"
+                    ],
+                    "kind": null,
+                    "name": "nanorand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "mutex"
+                    ],
+                    "kind": null,
+                    "name": "spin",
+                    "optional": false,
+                    "registry": null,
+                    "rename": "spin1",
+                    "req": "^0.9.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "attributes",
+                        "unstable"
+                    ],
+                    "kind": "dev",
+                    "name": "async-std",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.9.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "crossbeam-channel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "crossbeam-utils",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "rt",
+                        "macros"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.16.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "waker-fn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A blazingly fast multi-producer channel",
+            "documentation": "https://docs.rs/flume",
+            "edition": "2018",
+            "features": {
+                "async": [
+                    "futures-sink",
+                    "futures-core"
+                ],
+                "default": [
+                    "async",
+                    "select",
+                    "eventual-fairness"
+                ],
+                "eventual-fairness": [
+                    "select",
+                    "nanorand"
+                ],
+                "futures-core": [
+                    "dep:futures-core"
+                ],
+                "futures-sink": [
+                    "dep:futures-sink"
+                ],
+                "nanorand": [
+                    "dep:nanorand"
+                ],
+                "select": [],
+                "spin": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#flume@0.11.0",
+            "keywords": [
+                "mpsc",
+                "fifo",
+                "channel",
+                "thread",
+                "mpmc"
+            ],
+            "license": "Apache-2.0/MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/Cargo.toml",
+            "metadata": null,
+            "name": "flume",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/zesterer/flume",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "flume",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "perf",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/examples/perf.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "async",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/examples/async.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "select",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/examples/select.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "simple",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/examples/simple.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "same_channel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/same_channel.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/stream.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "zero",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/zero.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "after",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/after.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "method_sharing",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/method_sharing.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "never",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/never.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "list",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/list.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "iter",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/iter.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mpsc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/mpsc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "select_macro",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/select_macro.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "check_same_channel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/check_same_channel.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "async",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/async.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "select",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/select.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "array",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/array.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "golang",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/golang.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tick",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/tick.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ready",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/ready.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "basic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/basic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "thread_locals",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/tests/thread_locals.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "basic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/flume-0.11.0/benches/basic.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.11.0"
+        },
+        {
+            "authors": [
+                "Alex Crichton <alex@alexcrichton.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Fowler\u2013Noll\u2013Vo hash function",
+            "documentation": "https://doc.servo.org/fnv/",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7",
+            "keywords": [],
+            "license": "Apache-2.0 / MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fnv-1.0.7/Cargo.toml",
+            "metadata": null,
+            "name": "fnv",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/servo/rust-fnv",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "fnv",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fnv-1.0.7/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.7"
+        },
+        {
+            "authors": [
+                "The rust-url developers"
+            ],
+            "categories": [
+                "no_std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "percent-encoding",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "percent-encoding/alloc"
+                ],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc",
+                    "percent-encoding/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#form_urlencoded@1.2.1",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/form_urlencoded-1.2.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "form_urlencoded",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/servo/rust-url",
+            "rust_version": "1.51",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "form_urlencoded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/form_urlencoded-1.2.1/src/lib.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.2.1"
+        },
+        {
+            "authors": [
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "utf8-ranges",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "memmap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Use finite state transducers to compactly represents sets or maps of many\nstrings (> 1 billion is possible).\n",
+            "documentation": "https://docs.rs/fst",
+            "edition": "2018",
+            "features": {
+                "default": [],
+                "levenshtein": [
+                    "utf8-ranges"
+                ],
+                "utf8-ranges": [
+                    "dep:utf8-ranges"
+                ]
+            },
+            "homepage": "https://github.com/BurntSushi/fst",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#fst@0.4.7",
+            "keywords": [
+                "search",
+                "information",
+                "retrieval",
+                "dictionary",
+                "map"
+            ],
+            "license": "Unlicense/MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fst-0.4.7/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "levenshtein"
+                        ]
+                    }
+                }
+            },
+            "name": "fst",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/BurntSushi/fst",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "fst",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fst-0.4.7/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fst-0.4.7/tests/test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fst-0.4.7/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.7"
+        },
+        {
+            "authors": [
+                "myrrlyn <self@myrrlyn.dev>"
+            ],
+            "categories": [
+                "no-std",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Trait generalization over the primitive types",
+            "documentation": "https://docs.rs/funty",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#funty@2.0.0",
+            "keywords": [
+                "numerics",
+                "primitives",
+                "traits"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/funty-2.0.0/Cargo.toml",
+            "metadata": null,
+            "name": "funty",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/myrrlyn/funty",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "funty",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/funty-2.0.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.0.0"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "asynchronous"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "sink"
+                    ],
+                    "kind": null,
+                    "name": "futures-channel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-executor",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-io",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-sink",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-task",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "sink"
+                    ],
+                    "kind": null,
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "assert_matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pin-project",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pin-utils",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "An implementation of futures and streams featuring zero allocations,\ncomposability, and iterator-like interfaces.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "futures-core/alloc",
+                    "futures-task/alloc",
+                    "futures-sink/alloc",
+                    "futures-channel/alloc",
+                    "futures-util/alloc"
+                ],
+                "async-await": [
+                    "futures-util/async-await",
+                    "futures-util/async-await-macro"
+                ],
+                "bilock": [
+                    "futures-util/bilock"
+                ],
+                "cfg-target-has-atomic": [],
+                "compat": [
+                    "std",
+                    "futures-util/compat"
+                ],
+                "default": [
+                    "std",
+                    "async-await",
+                    "executor"
+                ],
+                "executor": [
+                    "std",
+                    "futures-executor/std"
+                ],
+                "futures-executor": [
+                    "dep:futures-executor"
+                ],
+                "io-compat": [
+                    "compat",
+                    "futures-util/io-compat"
+                ],
+                "std": [
+                    "alloc",
+                    "futures-core/std",
+                    "futures-task/std",
+                    "futures-io/std",
+                    "futures-sink/std",
+                    "futures-util/std",
+                    "futures-util/io",
+                    "futures-util/channel"
+                ],
+                "thread-pool": [
+                    "executor",
+                    "futures-executor/thread-pool"
+                ],
+                "unstable": [
+                    "futures-core/unstable",
+                    "futures-task/unstable",
+                    "futures-channel/unstable",
+                    "futures-io/unstable",
+                    "futures-util/unstable"
+                ],
+                "write-all-vectored": [
+                    "futures-util/write-all-vectored"
+                ]
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures@0.3.30",
+            "keywords": [
+                "futures",
+                "async",
+                "future"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                },
+                "playground": {
+                    "features": [
+                        "std",
+                        "async-await",
+                        "compat",
+                        "io-compat",
+                        "executor",
+                        "thread-pool"
+                    ]
+                }
+            },
+            "name": "futures",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_peekable",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_peekable.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_cursor",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_cursor.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_inspect",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_inspect.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_macro",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/test_macro.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "_require_features",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/_require_features.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_select_all",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_select_all.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "eager_drop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/eager_drop.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_obj",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_obj.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "oneshot",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/oneshot.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_buffer_unordered",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_buffer_unordered.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "recurse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/recurse.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_try_stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_try_stream.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macro_comma_support",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/macro_comma_support.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compat",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/compat.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "async_await_macros",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/async_await_macros.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read_to_end",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read_to_end.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_try_join_all",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_try_join_all.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "lock_mutex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/lock_mutex.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "sink",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/sink.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_line_writer",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_line_writer.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_join",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_join.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_write",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_write.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "eventual",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/eventual.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_buf_writer",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_buf_writer.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "task_arc_wake",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/task_arc_wake.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_try_flatten_stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_try_flatten_stream.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_unfold",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_unfold.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_buf_reader",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_buf_reader.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read_until",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read_until.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_join_all",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_join_all.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "sink_fanout",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/sink_fanout.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_futures_unordered",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_futures_unordered.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_into_async_read",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_into_async_read.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read_exact",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read_exact.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_abortable",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_abortable.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read_line",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read_line.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "auto_traits",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/auto_traits.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_catch_unwind",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_catch_unwind.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "task_atomic_waker",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/task_atomic_waker.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_basic_combinators",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_basic_combinators.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_lines",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_lines.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_read_to_string",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_read_to_string.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "io_window",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/io_window.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ready_queue",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/ready_queue.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_select_ok",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_select_ok.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bilock",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/bilock.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_shared",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_shared.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_split",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_split.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_futures_ordered",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_futures_ordered.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_select_next_some",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_select_next_some.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_abortable",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_abortable.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stream_select_all",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/stream_select_all.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "future_fuse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/future_fuse.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "try_join",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/try_join.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "object_safety",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-0.3.30/tests/object_safety.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-sink",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Channels for asynchronous communication using futures-rs.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "futures-core/alloc"
+                ],
+                "cfg-target-has-atomic": [],
+                "default": [
+                    "std"
+                ],
+                "futures-sink": [
+                    "dep:futures-sink"
+                ],
+                "sink": [
+                    "futures-sink"
+                ],
+                "std": [
+                    "alloc",
+                    "futures-core/std"
+                ],
+                "unstable": []
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "futures-channel",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_channel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "oneshot",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/oneshot.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "channel",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/channel.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mpsc-close",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc-close.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mpsc-size_hint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc-size_hint.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mpsc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/tests/mpsc.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "sync_mpsc",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-channel-0.3.30/benches/sync_mpsc.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [
+                "Yoshua Wuyts <yoshuawuyts@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bitvec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "slab",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "smallvec",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "attributes"
+                    ],
+                    "kind": "dev",
+                    "name": "async-std",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.12.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "async",
+                        "async_futures",
+                        "html_reports"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.12.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-time",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lending-stream",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "macros",
+                        "time",
+                        "rt-multi-thread"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.32.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Structured concurrency operations for async Rust",
+            "documentation": "https://docs.rs/futures-concurrency",
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "bitvec/alloc",
+                    "dep:slab",
+                    "dep:smallvec"
+                ],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-concurrency@7.5.0",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/Cargo.toml",
+            "metadata": null,
+            "name": "futures-concurrency",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/yoshuawuyts/futures-concurrency",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_concurrency",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "happy_eyeballs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/examples/happy_eyeballs.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "regression-155",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/tests/regression-155.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "no_std",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/tests/no_std.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/benches/bench.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "compare",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-concurrency-7.5.0/benches/compare.rs",
+                    "test": false
+                }
+            ],
+            "version": "7.5.0"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "require-cas"
+                    ],
+                    "kind": null,
+                    "name": "portable-atomic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "The core traits and types in for the `futures` library.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "cfg-target-has-atomic": [],
+                "default": [
+                    "std"
+                ],
+                "portable-atomic": [
+                    "dep:portable-atomic"
+                ],
+                "std": [
+                    "alloc"
+                ],
+                "unstable": []
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "futures-core",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-task",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num_cpus",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Executors for asynchronous tasks based on the futures-rs library.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "num_cpus": [
+                    "dep:num_cpus"
+                ],
+                "std": [
+                    "futures-core/std",
+                    "futures-task/std",
+                    "futures-util/std"
+                ],
+                "thread-pool": [
+                    "std",
+                    "num_cpus"
+                ]
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-executor@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-executor-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "futures-executor",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_executor",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-executor-0.3.30/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "local_pool",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-executor-0.3.30/tests/local_pool.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "thread_notify",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-executor-0.3.30/benches/thread_notify.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": [],
+                "unstable": []
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-io@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-io-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "futures-io",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_io",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-io-0.3.30/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>",
+                "Contributors to futures-rs"
+            ],
+            "categories": [
+                "asynchronous",
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fastrand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-io",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.3.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "spin_on",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "waker-fn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Futures, streams, and async I/O combinators",
+            "documentation": "https://docs.rs/futures-lite",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "race",
+                    "std"
+                ],
+                "fastrand": [
+                    "dep:fastrand"
+                ],
+                "futures-io": [
+                    "dep:futures-io"
+                ],
+                "memchr": [
+                    "dep:memchr"
+                ],
+                "parking": [
+                    "dep:parking"
+                ],
+                "race": [
+                    "fastrand"
+                ],
+                "std": [
+                    "alloc",
+                    "fastrand/std",
+                    "futures-io",
+                    "parking"
+                ]
+            },
+            "homepage": "https://github.com/smol-rs/futures-lite",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-lite@2.3.0",
+            "keywords": [
+                "asynchronous",
+                "futures",
+                "async"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-2.3.0/Cargo.toml",
+            "metadata": null,
+            "name": "futures-lite",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/futures-lite",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_lite",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-lite-2.3.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.3.0"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.60",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "The futures-rs procedural macro implementations.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-macro@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-macro-0.3.30/Cargo.toml",
+            "metadata": null,
+            "name": "futures-macro",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "futures_macro",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-macro-0.3.30/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "The asynchronous `Sink` trait for the futures-rs library.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-sink-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "futures-sink",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_sink",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-sink-0.3.30/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Tools for working with tasks.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "cfg-target-has-atomic": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ],
+                "unstable": []
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-task-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "futures-task",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_task",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-task-0.3.30/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "futures-channel",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "futures-io",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-macro",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-sink",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-task",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.30",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "futures_01",
+                    "req": "^0.1.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-utils",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "slab",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tokio-io",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Common utilities and extension traits for the futures-rs library.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "futures-core/alloc",
+                    "futures-task/alloc"
+                ],
+                "async-await": [],
+                "async-await-macro": [
+                    "async-await",
+                    "futures-macro"
+                ],
+                "bilock": [],
+                "cfg-target-has-atomic": [],
+                "channel": [
+                    "std",
+                    "futures-channel"
+                ],
+                "compat": [
+                    "std",
+                    "futures_01"
+                ],
+                "default": [
+                    "std",
+                    "async-await",
+                    "async-await-macro"
+                ],
+                "futures-channel": [
+                    "dep:futures-channel"
+                ],
+                "futures-io": [
+                    "dep:futures-io"
+                ],
+                "futures-macro": [
+                    "dep:futures-macro"
+                ],
+                "futures-sink": [
+                    "dep:futures-sink"
+                ],
+                "futures_01": [
+                    "dep:futures_01"
+                ],
+                "io": [
+                    "std",
+                    "futures-io",
+                    "memchr"
+                ],
+                "io-compat": [
+                    "io",
+                    "compat",
+                    "tokio-io"
+                ],
+                "memchr": [
+                    "dep:memchr"
+                ],
+                "portable-atomic": [
+                    "futures-core/portable-atomic"
+                ],
+                "sink": [
+                    "futures-sink"
+                ],
+                "slab": [
+                    "dep:slab"
+                ],
+                "std": [
+                    "alloc",
+                    "futures-core/std",
+                    "futures-task/std",
+                    "slab"
+                ],
+                "tokio-io": [
+                    "dep:tokio-io"
+                ],
+                "unstable": [
+                    "futures-core/unstable",
+                    "futures-task/unstable"
+                ],
+                "write-all-vectored": [
+                    "io"
+                ]
+            },
+            "homepage": "https://rust-lang.github.io/futures-rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.30",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "futures-util",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/futures-rs",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "futures_util",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "flatten_unordered",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/benches/flatten_unordered.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "select",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/benches/select.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bilock",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/benches/bilock.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "futures_unordered",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/benches/futures_unordered.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.30"
+        },
+        {
+            "authors": [
+                "Jinzhou Zhang <lotabout@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thread_local",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "termion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Fuzzy Matching Library",
+            "documentation": "https://docs.rs/fuzzy-matcher",
+            "edition": "2018",
+            "features": {
+                "compact": [],
+                "default": []
+            },
+            "homepage": "https://github.com/lotabout/fuzzy-matcher",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#fuzzy-matcher@0.3.7",
+            "keywords": [
+                "fuzzy",
+                "match",
+                "text",
+                "search"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fuzzy-matcher-0.3.7/Cargo.toml",
+            "metadata": null,
+            "name": "fuzzy-matcher",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/lotabout/fuzzy-matcher",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "fuzzy_matcher",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fuzzy-matcher-0.3.7/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "fz",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/fuzzy-matcher-0.3.7/examples/fz.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.7"
+        },
+        {
+            "authors": [
+                "Bart\u0142omiej Kami\u0144ski <fizyk20@gmail.com>",
+                "Aaron Trent <novacrazy@gmail.com>"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "typenum",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "version_check",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Generic types implementing functionality of arrays",
+            "documentation": "http://fizyk20.github.io/generic-array/generic_array/",
+            "edition": "2015",
+            "features": {
+                "more_lengths": [],
+                "serde": [
+                    "dep:serde"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7",
+            "keywords": [
+                "generic",
+                "array"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/generic-array-0.14.7/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "serde",
+                            "zeroize"
+                        ]
+                    }
+                }
+            },
+            "name": "generic-array",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/fizyk20/generic-array.git",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "generic_array",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/generic-array-0.14.7/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/generic-array-0.14.7/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.14.7"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "science::geo"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "earcutr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "float_next_after",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "approx",
+                        "use-rstar_0_11"
+                    ],
+                    "kind": null,
+                    "name": "geo-types",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "geographiclib-rs",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proj",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.27.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "robust",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "approx",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.4.0, <0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "html_reports"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pretty_env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_distr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wkt",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Geospatial primitives and algorithms",
+            "documentation": "https://docs.rs/geo/",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "earcutr"
+                ],
+                "earcutr": [
+                    "dep:earcutr"
+                ],
+                "proj": [
+                    "dep:proj"
+                ],
+                "proj-network": [
+                    "use-proj",
+                    "proj/network"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "use-proj": [
+                    "proj"
+                ],
+                "use-serde": [
+                    "serde",
+                    "geo-types/serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#geo@0.26.0",
+            "keywords": [
+                "gis",
+                "geo",
+                "geography",
+                "geospatial"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/Cargo.toml",
+            "metadata": null,
+            "name": "geo",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/georust/geo",
+            "rust_version": "1.63",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "geo",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "types",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/examples/types.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "algorithm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/examples/algorithm.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "concavehull-usage",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/examples/concavehull-usage.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "area",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/area.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "contains",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/contains.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "convex_hull",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/convex_hull.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "concave_hull",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/concave_hull.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "intersection",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/intersection.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "vincenty_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/vincenty_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "geodesic_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/geodesic_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "extremes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/extremes.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "euclidean_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/euclidean_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "rotate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/rotate.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "relate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/relate.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "simplify",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/simplify.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "simplifyvw",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/simplifyvw.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "frechet_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/frechet_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "rand_line_crossings",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/rand_line_crossings.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "winding_order",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.26.0/benches/winding_order.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.26.0"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "science::geo"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "earcutr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "float_next_after",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "approx",
+                        "use-rstar_0_11"
+                    ],
+                    "kind": null,
+                    "name": "geo-types",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "geographiclib-rs",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proj",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.27.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "robust",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "spade",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "approx",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.4.0, <0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "html_reports"
+                    ],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pretty_env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_distr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wkt",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Geospatial primitives and algorithms",
+            "documentation": "https://docs.rs/geo/",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "earcutr",
+                    "spade"
+                ],
+                "earcutr": [
+                    "dep:earcutr"
+                ],
+                "proj": [
+                    "dep:proj"
+                ],
+                "proj-network": [
+                    "use-proj",
+                    "proj/network"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "spade": [
+                    "dep:spade"
+                ],
+                "use-proj": [
+                    "proj"
+                ],
+                "use-serde": [
+                    "serde",
+                    "geo-types/serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#geo@0.27.0",
+            "keywords": [
+                "gis",
+                "geo",
+                "geography",
+                "geospatial"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/Cargo.toml",
+            "metadata": null,
+            "name": "geo",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/georust/geo",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "geo",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "types",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/examples/types.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "algorithm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/examples/algorithm.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "concavehull-usage",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/examples/concavehull-usage.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "area",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/area.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "contains",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/contains.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "convex_hull",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/convex_hull.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "concave_hull",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/concave_hull.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "intersection",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/intersection.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "vincenty_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/vincenty_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "geodesic_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/geodesic_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "extremes",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/extremes.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "euclidean_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/euclidean_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "rotate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/rotate.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "relate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/relate.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "simplify",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/simplify.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "simplifyvw",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/simplifyvw.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "frechet_distance",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/frechet_distance.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "rand_line_crossings",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/rand_line_crossings.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "winding_order",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/winding_order.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "monotone_subdiv",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-0.27.0/benches/monotone_subdiv.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.27.0"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "approx",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.4.0, <0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "libm"
+                    ],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rstar_0_10",
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rstar_0_11",
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rstar_0_12",
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rstar_0_8",
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rstar",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rstar_0_9",
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc",
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "approx",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.4.0, <0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Geospatial primitive data types",
+            "documentation": "https://docs.rs/geo-types/",
+            "edition": "2021",
+            "features": {
+                "approx": [
+                    "dep:approx"
+                ],
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "default": [
+                    "std"
+                ],
+                "rstar": [
+                    "rstar_0_8"
+                ],
+                "rstar_0_10": [
+                    "dep:rstar_0_10"
+                ],
+                "rstar_0_11": [
+                    "dep:rstar_0_11"
+                ],
+                "rstar_0_12": [
+                    "dep:rstar_0_12"
+                ],
+                "rstar_0_8": [
+                    "dep:rstar_0_8"
+                ],
+                "rstar_0_9": [
+                    "dep:rstar_0_9"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "approx?/std",
+                    "num-traits/std",
+                    "serde?/std"
+                ],
+                "use-rstar": [
+                    "use-rstar_0_8"
+                ],
+                "use-rstar_0_10": [
+                    "rstar_0_10",
+                    "approx"
+                ],
+                "use-rstar_0_11": [
+                    "rstar_0_11",
+                    "approx"
+                ],
+                "use-rstar_0_12": [
+                    "rstar_0_12",
+                    "approx"
+                ],
+                "use-rstar_0_8": [
+                    "rstar_0_8",
+                    "approx"
+                ],
+                "use-rstar_0_9": [
+                    "rstar_0_9",
+                    "approx"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#geo-types@0.7.13",
+            "keywords": [
+                "gis",
+                "geo",
+                "geography",
+                "geospatial"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-types-0.7.13/Cargo.toml",
+            "metadata": null,
+            "name": "geo-types",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/georust/geo",
+            "rust_version": "1.70",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "geo_types",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geo-types-0.7.13/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.13"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "accurate",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libm",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "approx",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "geographiclib",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A port of geographiclib in Rust.",
+            "documentation": "https://docs.rs/geographiclib-rs",
+            "edition": "2018",
+            "features": {
+                "accurate": [
+                    "dep:accurate"
+                ],
+                "default": [
+                    "accurate"
+                ],
+                "test_full": [],
+                "test_short": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#geographiclib-rs@0.2.4",
+            "keywords": [
+                "gis",
+                "geo",
+                "geography",
+                "geospatial"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geographiclib-rs-0.2.4/Cargo.toml",
+            "metadata": null,
+            "name": "geographiclib-rs",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/georust/geographiclib-rs",
+            "rust_version": "1.70.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "geographiclib_rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geographiclib-rs-0.2.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bin"
+                    ],
+                    "name": "geodsolve",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geographiclib-rs-0.2.4/src/bin/geodsolve.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "direct",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geographiclib-rs-0.2.4/examples/direct.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "geodesic_benchmark",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/geographiclib-rs-0.2.4/benches/geodesic_benchmark.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.4"
+        },
+        {
+            "authors": [
                 "The Rand Project Developers"
             ],
             "categories": [
@@ -2225,7 +21808,7 @@
                     "rename": null,
                     "req": "^0.3",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
-                    "target": "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
                     "uses_default_features": true
                 },
                 {
@@ -2237,7 +21820,7 @@
                     "rename": null,
                     "req": "^0.2.62",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
-                    "target": "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
                     "uses_default_features": false
                 },
                 {
@@ -2249,7 +21832,7 @@
                     "rename": null,
                     "req": "^0.3.18",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
-                    "target": "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))",
+                    "target": "cfg(all(any(target_arch = \"wasm32\", target_arch = \"wasm64\"), target_os = \"unknown\"))",
                     "uses_default_features": true
                 },
                 {
@@ -2259,10 +21842,10 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^0.10",
+                    "req": "^0.11",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": "cfg(target_os = \"wasi\")",
-                    "uses_default_features": true
+                    "uses_default_features": false
                 },
                 {
                     "features": [],
@@ -2271,7 +21854,7 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^0.2.64",
+                    "req": "^0.2.149",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": "cfg(unix)",
                     "uses_default_features": false
@@ -2309,13 +21892,27 @@
                 ]
             },
             "homepage": null,
-            "id": "getrandom 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#getrandom@0.2.12",
             "keywords": [],
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/Cargo.toml",
             "metadata": {
+                "cross": {
+                    "target": {
+                        "x86_64-unknown-netbsd": {
+                            "pre-build": [
+                                "mkdir -p /tmp/netbsd",
+                                "curl https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.2/amd64/binary/sets/base.tar.xz -O",
+                                "tar -C /tmp/netbsd -xJf base.tar.xz",
+                                "cp /tmp/netbsd/usr/lib/libexecinfo.so /usr/local/x86_64-unknown-netbsd/lib",
+                                "rm base.tar.xz",
+                                "rm -rf /tmp/netbsd"
+                            ]
+                        }
+                    }
+                },
                 "docs": {
                     "rs": {
                         "features": [
@@ -2347,7 +21944,7 @@
                         "lib"
                     ],
                     "name": "getrandom",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/src/lib.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/src/lib.rs",
                     "test": true
                 },
                 {
@@ -2361,7 +21958,7 @@
                         "test"
                     ],
                     "name": "normal",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/tests/normal.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/tests/normal.rs",
                     "test": true
                 },
                 {
@@ -2375,7 +21972,7 @@
                         "test"
                     ],
                     "name": "custom",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/tests/custom.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/tests/custom.rs",
                     "test": true
                 },
                 {
@@ -2389,7 +21986,7 @@
                         "test"
                     ],
                     "name": "rdrand",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/tests/rdrand.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/tests/rdrand.rs",
                     "test": true
                 },
                 {
@@ -2402,12 +21999,642 @@
                     "kind": [
                         "bench"
                     ],
-                    "name": "mod",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.5/benches/mod.rs",
+                    "name": "buffer",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/getrandom-0.2.12/benches/buffer.rs",
                     "test": false
                 }
             ],
-            "version": "0.2.5"
+            "version": "0.2.12"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "development-tools::debugging",
+                "development-tools::profiling",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fallible-iterator",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "indexmap",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "stable_deref_trait",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "test-assembler",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A library for reading and writing the DWARF debugging format.",
+            "documentation": "https://docs.rs/gimli",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "read-all",
+                    "write"
+                ],
+                "endian-reader": [
+                    "read",
+                    "dep:stable_deref_trait"
+                ],
+                "fallible-iterator": [
+                    "dep:fallible-iterator"
+                ],
+                "read": [
+                    "read-core"
+                ],
+                "read-all": [
+                    "read",
+                    "std",
+                    "fallible-iterator",
+                    "endian-reader"
+                ],
+                "read-core": [],
+                "rustc-dep-of-std": [
+                    "dep:core",
+                    "dep:alloc",
+                    "dep:compiler_builtins"
+                ],
+                "std": [
+                    "fallible-iterator?/std",
+                    "stable_deref_trait?/std"
+                ],
+                "write": [
+                    "dep:indexmap"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#gimli@0.28.1",
+            "keywords": [
+                "DWARF",
+                "debug",
+                "ELF",
+                "eh_frame"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/gimli-0.28.1/Cargo.toml",
+            "metadata": null,
+            "name": "gimli",
+            "publish": null,
+            "readme": "./README.md",
+            "repository": "https://github.com/gimli-rs/gimli",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "gimli",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/gimli-0.28.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.28.1"
+        },
+        {
+            "authors": [
+                "Carl Lerche <me@carllerche.com>",
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "asynchronous",
+                "web-programming",
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-sink",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "http",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "indexmap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "slab",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "io-util"
+                    ],
+                    "kind": null,
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "codec",
+                        "io"
+                    ],
+                    "kind": null,
+                    "name": "tokio-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "tracing",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.35",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "rt-multi-thread",
+                        "macros",
+                        "sync",
+                        "net"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tokio-rustls",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.24",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "walkdir",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "webpki-roots",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "An HTTP/2 client and server",
+            "documentation": "https://docs.rs/h2",
+            "edition": "2018",
+            "features": {
+                "stream": [],
+                "unstable": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#h2@0.3.25",
+            "keywords": [
+                "http",
+                "async",
+                "non-blocking"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/h2-0.3.25/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "stream"
+                        ]
+                    }
+                }
+            },
+            "name": "h2",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hyperium/h2",
+            "rust_version": "1.63",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "h2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/h2-0.3.25/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "akamai",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/h2-0.3.25/examples/akamai.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "client",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/h2-0.3.25/examples/client.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "server",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/h2-0.3.25/examples/server.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.25"
+        },
+        {
+            "authors": [
+                "Jorge Aparicio <jorge@japaric.io>"
+            ],
+            "categories": [
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "byteorder",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hash32-derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "32-bit hashing machinery",
+            "documentation": null,
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hash32@0.2.1",
+            "keywords": [
+                "32-bit",
+                "hash",
+                "fnv",
+                "murmur3"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hash32-0.2.1/Cargo.toml",
+            "metadata": null,
+            "name": "hash32",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/japaric/hash32",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hash32",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hash32-0.2.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hash32-0.2.1/examples/derive.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.1"
         },
         {
             "authors": [
@@ -2623,7 +22850,7 @@
                 ]
             },
             "homepage": null,
-            "id": "hashbrown 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.11.2",
             "keywords": [
                 "hash",
                 "no_std",
@@ -2742,6 +22969,1074 @@
         },
         {
             "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ahash",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bumpalo",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.5.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rayon",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rayon",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Rust port of Google's SwissTable hash map",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "ahash": [
+                    "dep:ahash"
+                ],
+                "ahash-compile-time-rng": [
+                    "ahash/compile-time-rng"
+                ],
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "bumpalo": [
+                    "dep:bumpalo"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [
+                    "ahash",
+                    "inline-more"
+                ],
+                "inline-more": [],
+                "nightly": [],
+                "raw": [],
+                "rayon": [
+                    "dep:rayon"
+                ],
+                "rustc-dep-of-std": [
+                    "nightly",
+                    "core",
+                    "compiler_builtins",
+                    "alloc",
+                    "rustc-internal-api"
+                ],
+                "rustc-internal-api": [],
+                "serde": [
+                    "dep:serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.12.3",
+            "keywords": [
+                "hash",
+                "no_std",
+                "hashmap",
+                "swisstable"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "nightly",
+                            "rayon",
+                            "serde",
+                            "raw"
+                        ]
+                    }
+                }
+            },
+            "name": "hashbrown",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/hashbrown",
+            "rust_version": "1.56.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hashbrown",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/tests/serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "rayon",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/tests/rayon.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "set",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/tests/set.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "hasher",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/tests/hasher.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "insert_unique_unchecked",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/benches/insert_unique_unchecked.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.12.3/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.12.3"
+        },
+        {
+            "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ahash",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "allocator-api2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "equivalent",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rayon",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "rkyv",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "allocator-api2"
+                    ],
+                    "kind": "dev",
+                    "name": "bumpalo",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.13.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rayon",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "validation"
+                    ],
+                    "kind": "dev",
+                    "name": "rkyv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Rust port of Google's SwissTable hash map",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "ahash": [
+                    "dep:ahash"
+                ],
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "allocator-api2": [
+                    "dep:allocator-api2"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [
+                    "ahash",
+                    "inline-more",
+                    "allocator-api2"
+                ],
+                "equivalent": [
+                    "dep:equivalent"
+                ],
+                "inline-more": [],
+                "nightly": [
+                    "allocator-api2?/nightly",
+                    "bumpalo/allocator_api"
+                ],
+                "raw": [],
+                "rayon": [
+                    "dep:rayon"
+                ],
+                "rkyv": [
+                    "dep:rkyv"
+                ],
+                "rustc-dep-of-std": [
+                    "nightly",
+                    "core",
+                    "compiler_builtins",
+                    "alloc",
+                    "rustc-internal-api"
+                ],
+                "rustc-internal-api": [],
+                "serde": [
+                    "dep:serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.14.3",
+            "keywords": [
+                "hash",
+                "no_std",
+                "hashmap",
+                "swisstable"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "nightly",
+                            "rayon",
+                            "serde",
+                            "raw"
+                        ],
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "hashbrown",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/hashbrown",
+            "rust_version": "1.63.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hashbrown",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "rayon",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/rayon.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "raw",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/raw.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "equivalent_trait",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/equivalent_trait.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "set",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/set.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "hasher",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/tests/hasher.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "insert_unique_unchecked",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/benches/insert_unique_unchecked.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hashbrown-0.14.3/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.14.3"
+        },
+        {
+            "authors": [
+                "Jorge Aparicio <jorge@japaric.io>",
+                "Per Lindgren <per.lindgren@ltu.se>",
+                "Emil Fresk <emil.fresk@gmail.com>"
+            ],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "defmt",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.2.0, <0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "hash32",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "stable_deref_trait",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ufmt-write",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "ufmt",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "rustc_version",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"avr\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "spin",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"x86_64\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "riscv32i-unknown-none-elf",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "riscv32imc-unknown-none-elf",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "thumbv6m-none-eabi",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "atomic-polyfill",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "xtensa-esp32s2-none-elf",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "`static` friendly data structures that don't require dynamic memory allocation",
+            "documentation": "https://docs.rs/heapless",
+            "edition": "2018",
+            "features": {
+                "__trybuild": [],
+                "atomic-polyfill": [
+                    "dep:atomic-polyfill"
+                ],
+                "cas": [
+                    "atomic-polyfill"
+                ],
+                "default": [
+                    "cas"
+                ],
+                "defmt": [
+                    "dep:defmt"
+                ],
+                "defmt-impl": [
+                    "defmt"
+                ],
+                "mpmc_large": [],
+                "serde": [
+                    "dep:serde"
+                ],
+                "ufmt-impl": [
+                    "ufmt-write"
+                ],
+                "ufmt-write": [
+                    "dep:ufmt-write"
+                ],
+                "x86-sync-pool": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#heapless@0.7.17",
+            "keywords": [
+                "static",
+                "no-heap"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/heapless-0.7.17/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "heapless",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/japaric/heapless",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "heapless",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/heapless-0.7.17/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tsan",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/heapless-0.7.17/tests/tsan.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cpass",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/heapless-0.7.17/tests/cpass.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/heapless-0.7.17/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.7.17"
+        },
+        {
+            "authors": [
                 "Without Boats <woboats@gmail.com>"
             ],
             "categories": [],
@@ -2773,7 +24068,7 @@
                 ]
             },
             "homepage": "https://github.com/withoutboats/heck",
-            "id": "heck 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#heck@0.4.0",
             "keywords": [
                 "string",
                 "case",
@@ -2875,7 +24170,7 @@
                 ]
             },
             "homepage": null,
-            "id": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hermit-abi@0.1.19",
             "keywords": [
                 "unikernel",
                 "libos"
@@ -2911,7 +24206,7 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "hermit-abi",
+                    "name": "hermit_abi",
                     "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.1.19/src/lib.rs",
                     "test": true
                 }
@@ -2920,6 +24215,2811 @@
         },
         {
             "authors": [
+                "Stefan Lankes"
+            ],
+            "categories": [
+                "os"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Hermit system calls definitions.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [],
+                "rustc-dep-of-std": [
+                    "core",
+                    "alloc",
+                    "compiler_builtins/rustc-dep-of-std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hermit-abi@0.3.9",
+            "keywords": [
+                "unikernel",
+                "libos"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.3.9/Cargo.toml",
+            "metadata": null,
+            "name": "hermit-abi",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hermit-os/hermit-rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hermit_abi",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hermit-abi-0.3.9/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.9"
+        },
+        {
+            "authors": [
+                "KokaKiwi <kokakiwi@kokakiwi.net>"
+            ],
+            "categories": [
+                "encoding",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "faster-hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pretty_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustc-hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "version-sync",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Encoding and decoding data into/from hexadecimal representation.",
+            "documentation": "https://docs.rs/hex/",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hex@0.4.3",
+            "keywords": [
+                "no_std",
+                "hex"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hex-0.4.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "hex",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/KokaKiwi/rust-hex",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hex-0.4.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hex-0.4.3/tests/serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "version-number",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hex-0.4.3/tests/version-number.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "hex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hex-0.4.3/benches/hex.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.3"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "mac"
+                    ],
+                    "kind": null,
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "dev"
+                    ],
+                    "kind": "dev",
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "md-5",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "sha-1",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "sha2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "streebog",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Generic implementation of Hash-based Message Authentication Code (HMAC)",
+            "documentation": "https://docs.rs/hmac",
+            "edition": "2018",
+            "features": {
+                "reset": [],
+                "std": [
+                    "digest/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hmac@0.12.1",
+            "keywords": [
+                "crypto",
+                "mac",
+                "hmac",
+                "digest"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hmac-0.12.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "hmac",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/MACs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hmac",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hmac-0.12.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hmac-0.12.1/tests/mod.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.12.1"
+        },
+        {
+            "authors": [
+                "Alex Crichton <alex@alexcrichton.com>",
+                "Carl Lerche <me@carllerche.com>",
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "web-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itoa",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "indexmap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "<=1.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "seahash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A set of types for representing HTTP requests and responses.\n",
+            "documentation": "https://docs.rs/http",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#http@0.2.12",
+            "keywords": [
+                "http"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/Cargo.toml",
+            "metadata": null,
+            "name": "http",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hyperium/http",
+            "rust_version": "1.49.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "http",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "header_map",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/tests/header_map.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "status_code",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/tests/status_code.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "header_map_fuzz",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/tests/header_map_fuzz.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.12"
+        },
+        {
+            "authors": [
+                "Carl Lerche <me@carllerche.com>",
+                "Lucio Franco <luciofranco14@gmail.com>",
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "web-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "http",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "macros",
+                        "rt"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Trait representing an asynchronous, streaming, HTTP request or response body.\n",
+            "documentation": "https://docs.rs/http-body",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#http-body@0.4.6",
+            "keywords": [
+                "http"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-body-0.4.6/Cargo.toml",
+            "metadata": null,
+            "name": "http-body",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hyperium/http-body",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "http_body",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-body-0.4.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "is_end_stream",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/http-body-0.4.6/tests/is_end_stream.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.6"
+        },
+        {
+            "authors": [
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "network-programming",
+                "no-std",
+                "parser-implementations",
+                "web-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A tiny, safe, speedy, zero-copy HTTP/1.x parser.",
+            "documentation": "https://docs.rs/httparse",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#httparse@1.8.0",
+            "keywords": [
+                "http",
+                "parser",
+                "no_std"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httparse-1.8.0/Cargo.toml",
+            "metadata": null,
+            "name": "httparse",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/seanmonstar/httparse",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "httparse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httparse-1.8.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "uri",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httparse-1.8.0/tests/uri.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "parse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httparse-1.8.0/benches/parse.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httparse-1.8.0/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.8.0"
+        },
+        {
+            "authors": [
+                "Pyfisch <pyfisch@posteo.org>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "HTTP date parsing and formatting",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#httpdate@1.0.3",
+            "keywords": [
+                "http",
+                "date",
+                "time",
+                "simple",
+                "timestamp"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httpdate-1.0.3/Cargo.toml",
+            "metadata": null,
+            "name": "httpdate",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/pyfisch/httpdate",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "httpdate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httpdate-1.0.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmarks",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/httpdate-1.0.3/benches/benchmarks.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.3"
+        },
+        {
+            "authors": [
+                "Paul Colomiets <paul@colomiets.name>"
+            ],
+            "categories": [
+                "date-and-time"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "chrono",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "time",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "    A parser and formatter for std::time::{Duration, SystemTime}\n",
+            "documentation": "https://docs.rs/humantime",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://github.com/tailhook/humantime",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#humantime@2.1.0",
+            "keywords": [
+                "time",
+                "human",
+                "human-friendly",
+                "parser",
+                "duration"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/humantime-2.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "humantime",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/tailhook/humantime",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "humantime",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/humantime-2.1.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "datetime_format",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/humantime-2.1.0/benches/datetime_format.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "datetime_parse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/humantime-2.1.0/benches/datetime_parse.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.1.0"
+        },
+        {
+            "authors": [
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "network-programming",
+                "web-programming::http-client",
+                "web-programming::http-server"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-channel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "h2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.17",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "http",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "http-body",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "httparse",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "httpdate",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itoa",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-lite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "all"
+                    ],
+                    "kind": null,
+                    "name": "socket2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.4.7, <0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "sync"
+                    ],
+                    "kind": null,
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tower-service",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "tracing",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "want",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": "dev",
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "num_cpus",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pretty_env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": "dev",
+                    "name": "serde",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "spmc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "fs",
+                        "macros",
+                        "io-std",
+                        "io-util",
+                        "rt",
+                        "rt-multi-thread",
+                        "sync",
+                        "time",
+                        "test-util"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tokio-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "codec"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "make",
+                        "util"
+                    ],
+                    "kind": "dev",
+                    "name": "tower",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "url",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "pnet_datalink",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.27.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_os = \"linux\", target_os = \"macos\"))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A fast and correct HTTP library.",
+            "documentation": "https://docs.rs/hyper",
+            "edition": "2018",
+            "features": {
+                "__internal_happy_eyeballs_tests": [],
+                "backports": [],
+                "client": [],
+                "default": [],
+                "deprecated": [],
+                "ffi": [
+                    "libc"
+                ],
+                "full": [
+                    "client",
+                    "http1",
+                    "http2",
+                    "server",
+                    "stream",
+                    "runtime"
+                ],
+                "h2": [
+                    "dep:h2"
+                ],
+                "http1": [],
+                "http2": [
+                    "h2"
+                ],
+                "libc": [
+                    "dep:libc"
+                ],
+                "nightly": [],
+                "runtime": [
+                    "tcp",
+                    "tokio/rt",
+                    "tokio/time"
+                ],
+                "server": [],
+                "socket2": [
+                    "dep:socket2"
+                ],
+                "stream": [],
+                "tcp": [
+                    "socket2",
+                    "tokio/net",
+                    "tokio/rt",
+                    "tokio/time"
+                ]
+            },
+            "homepage": "https://hyper.rs",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hyper@0.14.28",
+            "keywords": [
+                "http",
+                "hyper",
+                "hyperium"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "ffi",
+                            "full"
+                        ],
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs",
+                            "--cfg",
+                            "hyper_unstable_ffi"
+                        ]
+                    }
+                },
+                "playground": {
+                    "features": [
+                        "full"
+                    ]
+                }
+            },
+            "name": "hyper",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hyperium/hyper",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hyper",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "client",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/client.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "client_json",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/client_json.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "echo",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/echo.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "gateway",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/gateway.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "hello",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/hello.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "http_proxy",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/http_proxy.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "multi_server",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/multi_server.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "params",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/params.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "send_file",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/send_file.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "service_struct_impl",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/service_struct_impl.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "single_threaded",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/single_threaded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "state",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/state.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "tower_client",
+                    "required-features": [
+                        "full",
+                        "backports"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/tower_client.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "tower_server",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/tower_server.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "upgrades",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/upgrades.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "web_api",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/examples/web_api.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "client",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/tests/client.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/tests/integration.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "server",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/tests/server.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "body",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/benches/body.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "connect",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/benches/connect.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "end_to_end",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/benches/end_to_end.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "pipeline",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/benches/pipeline.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "server",
+                    "required-features": [
+                        "full"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.28/benches/server.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.14.28"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "http",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "client"
+                    ],
+                    "kind": null,
+                    "name": "hyper",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustls",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustls-native-certs",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tokio-rustls",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.24.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "webpki-roots",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full"
+                    ],
+                    "kind": "dev",
+                    "name": "hyper",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "tls12"
+                    ],
+                    "kind": "dev",
+                    "name": "rustls",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustls-pemfile",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "io-std",
+                        "macros",
+                        "net",
+                        "rt-multi-thread"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Rustls+hyper integration for pure rust HTTPS",
+            "documentation": "https://docs.rs/hyper-rustls/",
+            "edition": "2021",
+            "features": {
+                "acceptor": [
+                    "hyper/server",
+                    "tokio-runtime"
+                ],
+                "default": [
+                    "native-tokio",
+                    "http1",
+                    "tls12",
+                    "logging",
+                    "acceptor"
+                ],
+                "http1": [
+                    "hyper/http1"
+                ],
+                "http2": [
+                    "hyper/http2"
+                ],
+                "log": [
+                    "dep:log"
+                ],
+                "logging": [
+                    "log",
+                    "tokio-rustls/logging",
+                    "rustls/logging"
+                ],
+                "native-tokio": [
+                    "tokio-runtime",
+                    "rustls-native-certs"
+                ],
+                "rustls-native-certs": [
+                    "dep:rustls-native-certs"
+                ],
+                "tls12": [
+                    "tokio-rustls/tls12",
+                    "rustls/tls12"
+                ],
+                "tokio-runtime": [
+                    "hyper/runtime"
+                ],
+                "webpki-roots": [
+                    "dep:webpki-roots"
+                ],
+                "webpki-tokio": [
+                    "tokio-runtime",
+                    "webpki-roots"
+                ]
+            },
+            "homepage": "https://github.com/rustls/hyper-rustls",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#hyper-rustls@0.24.2",
+            "keywords": [],
+            "license": "Apache-2.0 OR ISC OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-rustls-0.24.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "hyper-rustls",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rustls/hyper-rustls",
+            "rust_version": "1.63",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "hyper_rustls",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-rustls-0.24.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "client",
+                    "required-features": [
+                        "native-tokio",
+                        "http1"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-rustls-0.24.2/examples/client.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "server",
+                    "required-features": [
+                        "tokio-runtime",
+                        "acceptor"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-rustls-0.24.2/examples/server.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/hyper-rustls-0.24.2/tests/tests.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.24.2"
+        },
+        {
+            "authors": [
+                "Andrew Straw <strawman@astraw.com>",
+                "Ren\u00e9 Kijewski <rene.kijewski@fu-berlin.de>",
+                "Ryan Lopopolo <rjl@hyperbo.la>"
+            ],
+            "categories": [
+                "date-and-time",
+                "internationalization",
+                "os"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "core-foundation-sys",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_os = \"macos\", target_os = \"ios\"))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "js-sys",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.50",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wasm-bindgen",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.70",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "android_system_properties",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"android\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "iana-time-zone-haiku",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"haiku\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "windows-core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": ">=0.50, <=0.52",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"windows\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "get the IANA time zone for the current system",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "fallback": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#iana-time-zone@0.1.60",
+            "keywords": [
+                "IANA",
+                "time"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-0.1.60/Cargo.toml",
+            "metadata": null,
+            "name": "iana-time-zone",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/strawlab/iana-time-zone",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "iana_time_zone",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-0.1.60/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "get_timezone",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-0.1.60/examples/get_timezone.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "stress-test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-0.1.60/examples/stress-test.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.60"
+        },
+        {
+            "authors": [
+                "Ren\u00e9 Kijewski <crates.io@k6i.de>"
+            ],
+            "categories": [
+                "date-and-time",
+                "internationalization",
+                "os"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "cc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.79",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "iana-time-zone support crate for Haiku OS",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#iana-time-zone-haiku@0.1.2",
+            "keywords": [
+                "IANA",
+                "time"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-haiku-0.1.2/Cargo.toml",
+            "metadata": null,
+            "name": "iana-time-zone-haiku",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/strawlab/iana-time-zone",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "iana_time_zone_haiku",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-haiku-0.1.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/iana-time-zone-haiku-0.1.2/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.2"
+        },
+        {
+            "authors": [
+                "Ted Driggs <ted.driggs@outlook.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Utility for applying case rules to Rust identifiers.",
+            "documentation": "https://docs.rs/ident_case/1.0.1",
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ident_case@1.0.1",
+            "keywords": [],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ident_case-1.0.1/Cargo.toml",
+            "metadata": null,
+            "name": "ident_case",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/TedDriggs/ident_case",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ident_case",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ident_case-1.0.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.1"
+        },
+        {
+            "authors": [
+                "The rust-url developers"
+            ],
+            "categories": [
+                "no_std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "hardcoded-data"
+                    ],
+                    "kind": null,
+                    "name": "unicode-bidi",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicode-normalization",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.22",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "assert_matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bencher",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tester",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "IDNA (Internationalizing Domain Names in Applications) and Punycode.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc",
+                    "unicode-bidi/std",
+                    "unicode-normalization/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#idna@0.5.0",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/idna-0.5.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "idna",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/servo/rust-url/",
+            "rust_version": "1.51",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "idna",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/idna-0.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/idna-0.5.0/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unit",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/idna-0.5.0/tests/unit.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "all",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/idna-0.5.0/benches/all.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.5.0"
+        },
+        {
+            "authors": [
                 "bluss",
                 "Josh Stone <cuviper@gmail.com>"
             ],
@@ -3099,7 +27199,7 @@
                 "test_low_transition_point": []
             },
             "homepage": null,
-            "id": "indexmap 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#indexmap@1.8.0",
             "keywords": [
                 "hashmap",
                 "no_std"
@@ -3245,6 +27345,2015 @@
             "version": "1.8.0"
         },
         {
+            "authors": [],
+            "categories": [
+                "data-structures",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "borsh",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "equivalent",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "raw"
+                    ],
+                    "kind": null,
+                    "name": "hashbrown",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quickcheck",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rayon",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-rayon",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "rustc-rayon",
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fnv",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "fxhash",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A hash table with consistent order and fast iteration.",
+            "documentation": "https://docs.rs/indexmap/",
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "borsh": [
+                    "dep:borsh"
+                ],
+                "default": [
+                    "std"
+                ],
+                "quickcheck": [
+                    "dep:quickcheck"
+                ],
+                "rayon": [
+                    "dep:rayon"
+                ],
+                "rustc-rayon": [
+                    "dep:rustc-rayon"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [],
+                "test_debug": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#indexmap@2.2.6",
+            "keywords": [
+                "hashmap",
+                "no_std"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "arbitrary",
+                            "quickcheck",
+                            "serde",
+                            "borsh",
+                            "rayon"
+                        ],
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                },
+                "release": {
+                    "no-dev-version": true,
+                    "tag-name": "{{version}}"
+                }
+            },
+            "name": "indexmap",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/indexmap-rs/indexmap",
+            "rust_version": "1.63",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "indexmap",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "quick",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/tests/quick.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros_full_path",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/tests/macros_full_path.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "equivalent_trait",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/tests/equivalent_trait.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/tests/tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "faststring",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/benches/faststring.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/indexmap-2.2.6/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.2.6"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "block-padding",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "generic-array",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Custom reference types for code generic over in-place and buffer-to-buffer modes of operation.",
+            "documentation": "https://docs.rs/inout",
+            "edition": "2021",
+            "features": {
+                "block-padding": [
+                    "dep:block-padding"
+                ],
+                "std": [
+                    "block-padding/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#inout@0.1.3",
+            "keywords": [
+                "custom-reference"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/inout-0.1.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "inout",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/RustCrypto/utils",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "inout",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/inout-0.1.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.3"
+        },
+        {
+            "authors": [
+                "Kris Price <kris@krisprice.nz>"
+            ],
+            "categories": [
+                "network-programming"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "heapless",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "schemars",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "serde",
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Provides types and useful methods for working with IPv4 and IPv6 network addresses, commonly called IP prefixes. The new `IpNet`, `Ipv4Net`, and `Ipv6Net` types build on the existing `IpAddr`, `Ipv4Addr`, and `Ipv6Addr` types already provided in Rust's standard library and align to their design to stay consistent. The module also provides useful traits that extend `Ipv4Addr` and `Ipv6Addr` with methods for `Add`, `Sub`, `BitAnd`, and `BitOr` operations. The module only uses stable feature so it is guaranteed to compile using the stable toolchain.",
+            "documentation": "https://docs.rs/ipnet",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "heapless": [
+                    "dep:heapless"
+                ],
+                "json": [
+                    "serde",
+                    "schemars"
+                ],
+                "schemars": [
+                    "dep:schemars"
+                ],
+                "ser_as_str": [
+                    "heapless"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ipnet@2.9.0",
+            "keywords": [
+                "IP",
+                "CIDR",
+                "network",
+                "prefix",
+                "subnet"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ipnet-2.9.0/Cargo.toml",
+            "metadata": null,
+            "name": "ipnet",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/krisprice/ipnet",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ipnet",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ipnet-2.9.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.9.0"
+        },
+        {
+            "authors": [
+                "bluss"
+            ],
+            "categories": [
+                "algorithms",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "either",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "paste",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "permutohedron",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Extra iterator adaptors, iterator methods, free functions, and macros.",
+            "documentation": "https://docs.rs/itertools/",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "use_std"
+                ],
+                "use_alloc": [],
+                "use_std": [
+                    "use_alloc",
+                    "either/use_std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#itertools@0.10.5",
+            "keywords": [
+                "iterator",
+                "data-structure",
+                "zip",
+                "product",
+                "group-by"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/Cargo.toml",
+            "metadata": {
+                "release": {
+                    "no-dev-version": true
+                }
+            },
+            "name": "itertools",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-itertools/itertools",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "itertools",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/src/lib.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "iris",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/examples/iris.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "quick",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/quick.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/test_core.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "adaptors_no_collect",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/adaptors_no_collect.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tuples",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/tuples.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_std",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/test_std.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "merge_join",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/merge_join.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros_hygiene",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/macros_hygiene.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "peeking_take_while",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/peeking_take_while.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "flatten_ok",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/flatten_ok.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "specializations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/specializations.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "zip",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/tests/zip.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tuple_combinations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/tuple_combinations.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tuples",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/tuples.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "fold_specialization",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/fold_specialization.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "combinations_with_replacement",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/combinations_with_replacement.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tree_fold1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/tree_fold1.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/bench1.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "combinations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/combinations.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "powerset",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.10.5/benches/powerset.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.10.5"
+        },
+        {
+            "authors": [
+                "bluss"
+            ],
+            "categories": [
+                "algorithms",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "either",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "paste",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "permutohedron",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Extra iterator adaptors, iterator methods, free functions, and macros.",
+            "documentation": "https://docs.rs/itertools/",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "use_std"
+                ],
+                "use_alloc": [],
+                "use_std": [
+                    "use_alloc",
+                    "either/use_std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#itertools@0.11.0",
+            "keywords": [
+                "iterator",
+                "data-structure",
+                "zip",
+                "product",
+                "group-by"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/Cargo.toml",
+            "metadata": null,
+            "name": "itertools",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-itertools/itertools",
+            "rust_version": "1.36.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "itertools",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/src/lib.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "iris",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/examples/iris.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "quick",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/quick.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/test_core.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "adaptors_no_collect",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/adaptors_no_collect.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tuples",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/tuples.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_std",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/test_std.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "merge_join",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/merge_join.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros_hygiene",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/macros_hygiene.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "peeking_take_while",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/peeking_take_while.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "flatten_ok",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/flatten_ok.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "specializations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/specializations.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "zip",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/tests/zip.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tuple_combinations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/tuple_combinations.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tuples",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/tuples.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "fold_specialization",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/fold_specialization.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "combinations_with_replacement",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/combinations_with_replacement.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "tree_fold1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/tree_fold1.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/bench1.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "combinations",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/combinations.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "powerset",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itertools-0.11.0/benches/powerset.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.11.0"
+        },
+        {
+            "authors": [
+                "David Tolnay <dtolnay@gmail.com>"
+            ],
+            "categories": [
+                "value-formatting",
+                "no-std",
+                "no-std::no-alloc"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "no-panic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Fast integer primitive to string conversion",
+            "documentation": "https://docs.rs/itoa",
+            "edition": "2018",
+            "features": {
+                "no-panic": [
+                    "dep:no-panic"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.11",
+            "keywords": [
+                "integer"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.11/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "itoa",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/dtolnay/itoa",
+            "rust_version": "1.36",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "itoa",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.11/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.11/tests/test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/itoa-1.0.11/benches/bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.11"
+        },
+        {
+            "authors": [
+                "The wasm-bindgen Developers"
+            ],
+            "categories": [
+                "wasm"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wasm-bindgen",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.92",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.3.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "Headers",
+                        "Response",
+                        "ResponseInit"
+                    ],
+                    "kind": "dev",
+                    "name": "web-sys",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.69",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_arch = \"wasm32\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Bindings for all JS global objects and functions in all JS environments like\nNode.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate.\n",
+            "documentation": "https://docs.rs/js-sys",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#js-sys@0.3.69",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.69/Cargo.toml",
+            "metadata": null,
+            "name": "js-sys",
+            "publish": null,
+            "readme": "./README.md",
+            "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys",
+            "rust_version": "1.57",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "js_sys",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.69/src/lib.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "wasm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.69/tests/wasm/main.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "headless",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/js-sys-0.3.69/tests/headless.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.3.69"
+        },
+        {
+            "authors": [
+                "Niko Matsakis <niko@alum.mit.edu>"
+            ],
+            "categories": [
+                "parsing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ascii-canvas",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bit-set",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ena",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "use_std"
+                    ],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "lalrpop-util",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.20.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "petgraph",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pico-args",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "regex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "regex-syntax",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "string_cache",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "term",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "sha3"
+                    ],
+                    "kind": null,
+                    "name": "tiny-keccak",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicode-xid",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "walkdir",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "diff",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "convenient LR(1) parser generator",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "lexer",
+                    "unicode",
+                    "pico-args"
+                ],
+                "lexer": [
+                    "lalrpop-util/lexer"
+                ],
+                "pico-args": [
+                    "dep:pico-args"
+                ],
+                "unicode": [
+                    "regex/unicode",
+                    "regex-syntax/unicode",
+                    "lalrpop-util/unicode"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#lalrpop@0.20.2",
+            "keywords": [
+                "parser",
+                "generator",
+                "LR",
+                "yacc",
+                "grammar"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lalrpop-0.20.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "lexer"
+                        ]
+                    }
+                }
+            },
+            "name": "lalrpop",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/lalrpop/lalrpop",
+            "rust_version": "1.70",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "lalrpop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lalrpop-0.20.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": true,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bin"
+                    ],
+                    "name": "lalrpop",
+                    "required-features": [
+                        "pico-args"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lalrpop-0.20.2/src/main.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.20.2"
+        },
+        {
+            "authors": [
+                "Niko Matsakis <niko@alum.mit.edu>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "perf",
+                        "syntax",
+                        "hybrid"
+                    ],
+                    "kind": null,
+                    "name": "regex-automata",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Runtime library for parsers generated by LALRPOP",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std",
+                    "unicode"
+                ],
+                "lexer": [
+                    "regex-automata/std",
+                    "std"
+                ],
+                "regex-automata": [
+                    "dep:regex-automata"
+                ],
+                "std": [],
+                "unicode": [
+                    "regex-automata?/unicode"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#lalrpop-util@0.20.2",
+            "keywords": [],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lalrpop-util-0.20.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "lexer"
+                        ]
+                    }
+                }
+            },
+            "name": "lalrpop-util",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/lalrpop/lalrpop",
+            "rust_version": "1.70",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "lalrpop_util",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lalrpop-util-0.20.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.20.2"
+        },
+        {
             "authors": [
                 "Marvin L\u00f6bel <loebel.marvin@gmail.com>"
             ],
@@ -3292,7 +29401,7 @@
                 ]
             },
             "homepage": null,
-            "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#lazy_static@1.4.0",
             "keywords": [
                 "macro",
                 "lazy",
@@ -3357,6 +29466,72 @@
         },
         {
             "authors": [
+                "Tobie Morgan Hitchcock <tobie@surrealdb.com>"
+            ],
+            "categories": [
+                "algorithms",
+                "text-processing",
+                "internationalization"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "any_ascii",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Library for comparing and sorting strings lexicographically and naturally",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": "https://github.com/surrealdb/lexicmp",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#lexicmp@0.1.0",
+            "keywords": [
+                "unicode",
+                "transliteration",
+                "lexicographical",
+                "sort",
+                "emoji"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lexicmp-0.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "lexicmp",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/surrealdb/lexicmp",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "lexicmp",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lexicmp-0.1.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.0"
+        },
+        {
+            "authors": [
                 "The Rust Project Developers"
             ],
             "categories": [
@@ -3402,7 +29577,7 @@
                 ]
             },
             "homepage": "https://github.com/rust-lang/libc",
-            "id": "libc 0.2.119 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.153",
             "keywords": [
                 "libc",
                 "ffi",
@@ -3413,13 +29588,126 @@
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.119/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/Cargo.toml",
             "metadata": {
                 "docs": {
                     "rs": {
+                        "cargo-args": [
+                            "-Zbuild-std=core"
+                        ],
+                        "default-target": "x86_64-unknown-linux-gnu",
                         "features": [
                             "const-extern-fn",
                             "extra_traits"
+                        ],
+                        "targets": [
+                            "aarch64-apple-darwin",
+                            "aarch64-apple-ios",
+                            "aarch64-linux-android",
+                            "aarch64-pc-windows-msvc",
+                            "aarch64-unknown-freebsd",
+                            "aarch64-unknown-fuchsia",
+                            "aarch64-unknown-hermit",
+                            "aarch64-unknown-linux-gnu",
+                            "aarch64-unknown-linux-musl",
+                            "aarch64-unknown-netbsd",
+                            "aarch64-unknown-openbsd",
+                            "aarch64-wrs-vxworks",
+                            "arm-linux-androideabi",
+                            "arm-unknown-linux-gnueabi",
+                            "arm-unknown-linux-gnueabihf",
+                            "arm-unknown-linux-musleabi",
+                            "arm-unknown-linux-musleabihf",
+                            "armebv7r-none-eabi",
+                            "armebv7r-none-eabihf",
+                            "armv5te-unknown-linux-gnueabi",
+                            "armv5te-unknown-linux-musleabi",
+                            "armv7-linux-androideabi",
+                            "armv7-unknown-linux-gnueabihf",
+                            "armv7-unknown-linux-musleabihf",
+                            "armv7-wrs-vxworks-eabihf",
+                            "armv7r-none-eabi",
+                            "armv7r-none-eabihf",
+                            "hexagon-unknown-linux-musl",
+                            "i586-pc-windows-msvc",
+                            "i586-unknown-linux-gnu",
+                            "i586-unknown-linux-musl",
+                            "i686-linux-android",
+                            "i686-pc-windows-gnu",
+                            "i686-pc-windows-msvc",
+                            "i686-pc-windows-msvc",
+                            "i686-unknown-freebsd",
+                            "i686-unknown-haiku",
+                            "i686-unknown-linux-gnu",
+                            "i686-unknown-linux-musl",
+                            "i686-unknown-netbsd",
+                            "i686-unknown-openbsd",
+                            "i686-wrs-vxworks",
+                            "mips-unknown-linux-gnu",
+                            "mips-unknown-linux-musl",
+                            "mips64-unknown-linux-gnuabi64",
+                            "mips64-unknown-linux-muslabi64",
+                            "mips64el-unknown-linux-gnuabi64",
+                            "mips64el-unknown-linux-muslabi64",
+                            "mipsel-sony-psp",
+                            "mipsel-unknown-linux-gnu",
+                            "mipsel-unknown-linux-musl",
+                            "nvptx64-nvidia-cuda",
+                            "powerpc-unknown-linux-gnu",
+                            "powerpc-unknown-linux-gnuspe",
+                            "powerpc-unknown-netbsd",
+                            "powerpc-wrs-vxworks",
+                            "powerpc-wrs-vxworks-spe",
+                            "powerpc64-unknown-freebsd",
+                            "powerpc64-unknown-linux-gnu",
+                            "powerpc64-wrs-vxworks",
+                            "powerpc64le-unknown-linux-gnu",
+                            "riscv32gc-unknown-linux-gnu",
+                            "riscv32i-unknown-none-elf",
+                            "riscv32imac-unknown-none-elf",
+                            "riscv32imc-unknown-none-elf",
+                            "riscv64gc-unknown-freebsd",
+                            "riscv64gc-unknown-hermit",
+                            "riscv64gc-unknown-linux-gnu",
+                            "riscv64gc-unknown-linux-musl",
+                            "riscv64gc-unknown-none-elf",
+                            "riscv64imac-unknown-none-elf",
+                            "s390x-unknown-linux-gnu",
+                            "s390x-unknown-linux-musl",
+                            "sparc-unknown-linux-gnu",
+                            "sparc64-unknown-linux-gnu",
+                            "sparc64-unknown-netbsd",
+                            "sparcv9-sun-solaris",
+                            "thumbv6m-none-eabi",
+                            "thumbv7em-none-eabi",
+                            "thumbv7em-none-eabihf",
+                            "thumbv7m-none-eabi",
+                            "thumbv7neon-linux-androideabi",
+                            "thumbv7neon-unknown-linux-gnueabihf",
+                            "wasm32-unknown-emscripten",
+                            "wasm32-unknown-unknown",
+                            "wasm32-wasi",
+                            "x86_64-apple-darwin",
+                            "x86_64-apple-ios",
+                            "x86_64-fortanix-unknown-sgx",
+                            "x86_64-linux-android",
+                            "x86_64-pc-solaris",
+                            "x86_64-pc-windows-gnu",
+                            "x86_64-pc-windows-msvc",
+                            "x86_64-unknown-dragonfly",
+                            "x86_64-unknown-freebsd",
+                            "x86_64-unknown-fuchsia",
+                            "x86_64-unknown-haiku",
+                            "x86_64-unknown-hermit",
+                            "x86_64-unknown-illumos",
+                            "x86_64-unknown-l4re-uclibc",
+                            "x86_64-unknown-linux-gnu",
+                            "x86_64-unknown-linux-gnux32",
+                            "x86_64-unknown-linux-musl",
+                            "x86_64-unknown-netbsd",
+                            "x86_64-unknown-openbsd",
+                            "x86_64-unknown-redox",
+                            "x86_64-wrs-vxworks"
                         ]
                     }
                 }
@@ -3442,7 +29730,7 @@
                         "lib"
                     ],
                     "name": "libc",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.119/src/lib.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/src/lib.rs",
                     "test": true
                 },
                 {
@@ -3456,7 +29744,7 @@
                         "test"
                     ],
                     "name": "const_fn",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.119/tests/const_fn.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/tests/const_fn.rs",
                     "test": true
                 },
                 {
@@ -3470,11 +29758,354 @@
                         "custom-build"
                     ],
                     "name": "build-script-build",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.119/build.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.153/build.rs",
                     "test": false
                 }
             ],
-            "version": "0.2.119"
+            "version": "0.2.153"
+        },
+        {
+            "authors": [
+                "Jorge Aparicio <jorge@japaric.io>"
+            ],
+            "categories": [
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "no-panic",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "rand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "libm in pure Rust",
+            "documentation": "https://docs.rs/libm",
+            "edition": "2018",
+            "features": {
+                "default": [],
+                "musl-reference-tests": [
+                    "rand"
+                ],
+                "rand": [
+                    "dep:rand"
+                ],
+                "unstable": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#libm@0.2.8",
+            "keywords": [
+                "libm",
+                "math"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libm-0.2.8/Cargo.toml",
+            "metadata": null,
+            "name": "libm",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/libm",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "libm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libm-0.2.8/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libm-0.2.8/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.8"
+        },
+        {
+            "authors": [
+                "4lDO2 <4lDO2@protonmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bitflags",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ioslice",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "redox_syscall",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Redox stable ABI",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "call": [],
+                "default": [
+                    "call",
+                    "std",
+                    "redox_syscall"
+                ],
+                "ioslice": [
+                    "dep:ioslice"
+                ],
+                "mkns": [
+                    "ioslice"
+                ],
+                "redox_syscall": [
+                    "dep:redox_syscall"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#libredox@0.1.3",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libredox-0.1.3/Cargo.toml",
+            "metadata": null,
+            "name": "libredox",
+            "publish": null,
+            "readme": null,
+            "repository": "https://gitlab.redox-os.org/redox-os/libredox.git",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "libredox",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/libredox-0.1.3/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.3"
+        },
+        {
+            "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [
+                "concurrency",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "owning_ref",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "scopeguard",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.126",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "autocfg",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "arc_lock": [],
+                "atomic_usize": [],
+                "default": [
+                    "atomic_usize"
+                ],
+                "nightly": [],
+                "owning_ref": [
+                    "dep:owning_ref"
+                ],
+                "serde": [
+                    "dep:serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.11",
+            "keywords": [
+                "mutex",
+                "rwlock",
+                "lock",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lock_api-0.4.11/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs",
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "lock_api",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/Amanieu/parking_lot",
+            "rust_version": "1.49.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "lock_api",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lock_api-0.4.11/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/lock_api-0.4.11/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.11"
         },
         {
             "authors": [
@@ -3547,7 +30178,7 @@
                 ]
             },
             "homepage": "https://github.com/rust-lang/log",
-            "id": "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#log@0.3.9",
             "keywords": [],
             "license": "MIT/Apache-2.0",
             "license_file": null,
@@ -3590,18 +30221,6 @@
                 {
                     "features": [],
                     "kind": null,
-                    "name": "cfg-if",
-                    "optional": false,
-                    "registry": null,
-                    "rename": null,
-                    "req": "^1.0",
-                    "source": "registry+https://github.com/rust-lang/crates.io-index",
-                    "target": null,
-                    "uses_default_features": true
-                },
-                {
-                    "features": [],
-                    "kind": null,
                     "name": "serde",
                     "optional": true,
                     "registry": null,
@@ -3618,7 +30237,7 @@
                     "optional": true,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.0-alpha.5",
+                    "req": "^2.1",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": false
@@ -3626,11 +30245,37 @@
                 {
                     "features": [],
                     "kind": null,
+                    "name": "sval_ref",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "inline-i128"
+                    ],
+                    "kind": null,
                     "name": "value-bag",
                     "optional": true,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.0-alpha.6",
+                    "req": "^1.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.63",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": false
@@ -3652,6 +30297,18 @@
                 {
                     "features": [],
                     "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
                     "name": "serde_test",
                     "optional": false,
                     "registry": null,
@@ -3662,15 +30319,25 @@
                     "uses_default_features": true
                 },
                 {
-                    "features": [
-                        "derive"
-                    ],
+                    "features": [],
                     "kind": "dev",
                     "name": "sval",
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.0-alpha.5",
+                    "req": "^2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "sval_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": true
@@ -3684,7 +30351,7 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.0-alpha.6",
+                    "req": "^1.7",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": true
@@ -3692,25 +30359,40 @@
             ],
             "description": "A lightweight logging facade for Rust\n",
             "documentation": "https://docs.rs/log",
-            "edition": "2015",
+            "edition": "2021",
             "features": {
-                "kv_unstable": [
-                    "value-bag"
-                ],
-                "kv_unstable_serde": [
-                    "kv_unstable_std",
+                "kv": [],
+                "kv_serde": [
+                    "kv_std",
                     "value-bag/serde",
                     "serde"
                 ],
-                "kv_unstable_std": [
+                "kv_std": [
                     "std",
-                    "kv_unstable",
+                    "kv",
                     "value-bag/error"
                 ],
-                "kv_unstable_sval": [
-                    "kv_unstable",
+                "kv_sval": [
+                    "kv",
                     "value-bag/sval",
-                    "sval"
+                    "sval",
+                    "sval_ref"
+                ],
+                "kv_unstable": [
+                    "kv",
+                    "value-bag"
+                ],
+                "kv_unstable_serde": [
+                    "kv_serde",
+                    "kv_unstable_std"
+                ],
+                "kv_unstable_std": [
+                    "kv_std",
+                    "kv_unstable"
+                ],
+                "kv_unstable_sval": [
+                    "kv_sval",
+                    "kv_unstable"
                 ],
                 "max_level_debug": [],
                 "max_level_error": [],
@@ -3731,28 +30413,31 @@
                 "sval": [
                     "dep:sval"
                 ],
+                "sval_ref": [
+                    "dep:sval_ref"
+                ],
                 "value-bag": [
                     "dep:value-bag"
                 ]
             },
             "homepage": null,
-            "id": "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#log@0.4.21",
             "keywords": [
                 "logging"
             ],
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/Cargo.toml",
             "metadata": {
                 "docs": {
                     "rs": {
                         "features": [
                             "std",
                             "serde",
-                            "kv_unstable_std",
-                            "kv_unstable_sval",
-                            "kv_unstable_serde"
+                            "kv_std",
+                            "kv_sval",
+                            "kv_serde"
                         ]
                     }
                 }
@@ -3761,6 +30446,180 @@
             "publish": null,
             "readme": "README.md",
             "repository": "https://github.com/rust-lang/log",
+            "rust_version": "1.60.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "log",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "filters",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/tests/filters.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "macros",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/tests/macros.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "value",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/benches/value.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.21"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "dev"
+                    ],
+                    "kind": "dev",
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "md5-asm",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(any(target_arch = \"x86\", target_arch = \"x86_64\"))",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "MD5 hash function",
+            "documentation": "https://docs.rs/md-5",
+            "edition": "2018",
+            "features": {
+                "asm": [
+                    "md5-asm"
+                ],
+                "default": [
+                    "std"
+                ],
+                "force-soft": [],
+                "loongarch64_asm": [],
+                "md5-asm": [
+                    "dep:md5-asm"
+                ],
+                "oid": [
+                    "digest/oid"
+                ],
+                "std": [
+                    "digest/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#md-5@0.10.6",
+            "keywords": [
+                "crypto",
+                "md5",
+                "hash",
+                "digest"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/md-5-0.10.6/Cargo.toml",
+            "metadata": null,
+            "name": "md-5",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/hashes",
             "rust_version": null,
             "source": "registry+https://github.com/rust-lang/crates.io-index",
             "targets": [
@@ -3770,12 +30629,12 @@
                     ],
                     "doc": true,
                     "doctest": true,
-                    "edition": "2015",
+                    "edition": "2018",
                     "kind": [
                         "lib"
                     ],
-                    "name": "log",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/src/lib.rs",
+                    "name": "md5",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/md-5-0.10.6/src/lib.rs",
                     "test": true
                 },
                 {
@@ -3784,12 +30643,12 @@
                     ],
                     "doc": false,
                     "doctest": false,
-                    "edition": "2015",
+                    "edition": "2018",
                     "kind": [
                         "test"
                     ],
-                    "name": "filters",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/tests/filters.rs",
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/md-5-0.10.6/tests/mod.rs",
                     "test": true
                 },
                 {
@@ -3798,44 +30657,16 @@
                     ],
                     "doc": false,
                     "doctest": false,
-                    "edition": "2015",
-                    "kind": [
-                        "test"
-                    ],
-                    "name": "macros",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/tests/macros.rs",
-                    "test": true
-                },
-                {
-                    "crate_types": [
-                        "bin"
-                    ],
-                    "doc": false,
-                    "doctest": false,
-                    "edition": "2015",
+                    "edition": "2018",
                     "kind": [
                         "bench"
                     ],
-                    "name": "value",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/benches/value.rs",
-                    "test": false
-                },
-                {
-                    "crate_types": [
-                        "bin"
-                    ],
-                    "doc": false,
-                    "doctest": false,
-                    "edition": "2015",
-                    "kind": [
-                        "custom-build"
-                    ],
-                    "name": "build-script-build",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.14/build.rs",
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/md-5-0.10.6/benches/mod.rs",
                     "test": false
                 }
             ],
-            "version": "0.4.14"
+            "version": "0.10.6"
         },
         {
             "authors": [
@@ -3872,14 +30703,14 @@
                 {
                     "features": [],
                     "kind": null,
-                    "name": "libc",
+                    "name": "log",
                     "optional": true,
                     "registry": null,
                     "rename": null,
-                    "req": "^0.2.18",
+                    "req": "^0.4.20",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
-                    "uses_default_features": false
+                    "uses_default_features": true
                 },
                 {
                     "features": [],
@@ -3894,10 +30725,11 @@
                     "uses_default_features": false
                 }
             ],
-            "description": "Safe interface to memchr.",
+            "description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for\n1, 2 or 3 byte search and single substring search.\n",
             "documentation": "https://docs.rs/memchr/",
-            "edition": "2018",
+            "edition": "2021",
             "features": {
+                "alloc": [],
                 "compiler_builtins": [
                     "dep:compiler_builtins"
                 ],
@@ -3907,36 +30739,801 @@
                 "default": [
                     "std"
                 ],
-                "libc": [
-                    "dep:libc"
+                "libc": [],
+                "logging": [
+                    "dep:log"
                 ],
                 "rustc-dep-of-std": [
                     "core",
                     "compiler_builtins"
                 ],
-                "std": [],
+                "std": [
+                    "alloc"
+                ],
                 "use_std": [
                     "std"
                 ]
             },
             "homepage": "https://github.com/BurntSushi/memchr",
-            "id": "memchr 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#memchr@2.7.2",
             "keywords": [
                 "memchr",
-                "char",
-                "scan",
-                "strchr",
-                "string"
+                "memmem",
+                "substring",
+                "find",
+                "search"
             ],
-            "license": "Unlicense/MIT",
+            "license": "Unlicense OR MIT",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.4.1/Cargo.toml",
-            "metadata": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
             "name": "memchr",
             "publish": null,
             "readme": "README.md",
             "repository": "https://github.com/BurntSushi/memchr",
+            "rust_version": "1.61",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "memchr",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.7.2"
+        },
+        {
+            "authors": [
+                "Kat March\u00e1n <kzm@zkat.tech>"
+            ],
+            "categories": [
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "backtrace",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.61",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "backtrace-ext",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "is-terminal",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "miette-derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=5.10.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.8.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "owo-colors",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.162",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "supports-color",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "supports-hyperlinks",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "supports-unicode",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "terminal_size",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.17",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "textwrap",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.15.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thiserror",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.40",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicode-width",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "indenter",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "regex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "semver",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.64",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full"
+                    ],
+                    "kind": "dev",
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "diff"
+                    ],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.19",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Fancy diagnostic reporting library and protocol for us mere mortals who aren't compiler hackers.",
+            "documentation": "https://docs.rs/miette",
+            "edition": "2018",
+            "features": {
+                "backtrace": [
+                    "dep:backtrace"
+                ],
+                "backtrace-ext": [
+                    "dep:backtrace-ext"
+                ],
+                "default": [],
+                "fancy": [
+                    "fancy-no-backtrace",
+                    "backtrace",
+                    "backtrace-ext"
+                ],
+                "fancy-no-backtrace": [
+                    "owo-colors",
+                    "is-terminal",
+                    "textwrap",
+                    "terminal_size",
+                    "supports-hyperlinks",
+                    "supports-color",
+                    "supports-unicode"
+                ],
+                "is-terminal": [
+                    "dep:is-terminal"
+                ],
+                "no-format-args-capture": [],
+                "owo-colors": [
+                    "dep:owo-colors"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "supports-color": [
+                    "dep:supports-color"
+                ],
+                "supports-hyperlinks": [
+                    "dep:supports-hyperlinks"
+                ],
+                "supports-unicode": [
+                    "dep:supports-unicode"
+                ],
+                "terminal_size": [
+                    "dep:terminal_size"
+                ],
+                "textwrap": [
+                    "dep:textwrap"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#miette@5.10.0",
+            "keywords": [],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miette-5.10.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "miette",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/zkat/miette",
+            "rust_version": "1.56.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "miette",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miette-5.10.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "5.10.0"
+        },
+        {
+            "authors": [
+                "Kat March\u00e1n <kzm@zkat.tech>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Derive macros for miette. Like `thiserror` for Diagnostics.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#miette-derive@5.10.0",
+            "keywords": [],
+            "license": "Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miette-derive-5.10.0/Cargo.toml",
+            "metadata": null,
+            "name": "miette-derive",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/zkat/miette",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "miette_derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miette-derive-5.10.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "5.10.0"
+        },
+        {
+            "authors": [
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Strongly Typed Mimes",
+            "documentation": "https://docs.rs/mime",
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#mime@0.3.17",
+            "keywords": [
+                "mime",
+                "media-extensions",
+                "media-types"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime-0.3.17/Cargo.toml",
+            "metadata": null,
+            "name": "mime",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/hyperium/mime",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "mime",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime-0.3.17/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "fmt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime-0.3.17/benches/fmt.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "parse",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime-0.3.17/benches/parse.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "cmp",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime-0.3.17/benches/cmp.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.3.17"
+        },
+        {
+            "authors": [
+                "Austin Bonander <austin.bonander@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "mime",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicase",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "unicase",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A simple crate for detection of a file's MIME type by its extension.",
+            "documentation": "https://docs.rs/mime_guess/",
+            "edition": "2015",
+            "features": {
+                "default": [
+                    "rev-mappings"
+                ],
+                "rev-mappings": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#mime_guess@2.0.4",
+            "keywords": [
+                "mime",
+                "filesystem",
+                "extension"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime_guess-2.0.4/Cargo.toml",
+            "metadata": null,
+            "name": "mime_guess",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/abonander/mime_guess",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "mime_guess",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime_guess-2.0.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "rev_map",
+                    "required-features": [
+                        "rev-mappings"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime_guess-2.0.4/examples/rev_map.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmark",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime_guess-2.0.4/benches/benchmark.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mime_guess-2.0.4/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.0.4"
+        },
+        {
+            "authors": [
+                "Alex Huszagh <ahuszagh@gmail.com>"
+            ],
+            "categories": [
+                "parsing",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Fast float parsing conversion routines.",
+            "documentation": "https://docs.rs/minimal-lexical",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "compact": [],
+                "default": [
+                    "std"
+                ],
+                "lint": [],
+                "nightly": [],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#minimal-lexical@0.2.1",
+            "keywords": [
+                "parsing",
+                "no_std"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/Cargo.toml",
+            "metadata": null,
+            "name": "minimal-lexical",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Alexhuszagh/minimal-lexical",
             "rust_version": null,
             "source": "registry+https://github.com/rust-lang/crates.io-index",
             "targets": [
@@ -3950,8 +31547,8 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "memchr",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.4.1/src/lib.rs",
+                    "name": "minimal_lexical",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/src/lib.rs",
                     "test": true
                 },
                 {
@@ -3962,14 +31559,548 @@
                     "doctest": false,
                     "edition": "2018",
                     "kind": [
-                        "custom-build"
+                        "test"
                     ],
-                    "name": "build-script-build",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.4.1/build.rs",
+                    "name": "stackvec",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/stackvec.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "slow_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/slow_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "vec_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/vec_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "lemire_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/lemire_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bellerophon_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/bellerophon_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "parse_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/parse_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "rounding_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/rounding_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bellerophon",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/bellerophon.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "libm_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/libm_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mask_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/mask_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "number_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/number_tests.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration_tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/minimal-lexical-0.2.1/tests/integration_tests.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.1"
+        },
+        {
+            "authors": [
+                "Frommi <daniil.liferenko@gmail.com>",
+                "oyvindln <oyvindln@users.noreply.github.com>"
+            ],
+            "categories": [
+                "compression"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "adler",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "simd-adler32",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "DEFLATE compression and decompression library rewritten in Rust based on miniz",
+            "documentation": "https://docs.rs/miniz_oxide",
+            "edition": "2018",
+            "features": {
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [
+                    "with-alloc"
+                ],
+                "rustc-dep-of-std": [
+                    "core",
+                    "alloc",
+                    "compiler_builtins",
+                    "adler/rustc-dep-of-std"
+                ],
+                "simd": [
+                    "simd-adler32"
+                ],
+                "simd-adler32": [
+                    "dep:simd-adler32"
+                ],
+                "std": [],
+                "with-alloc": []
+            },
+            "homepage": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#miniz_oxide@0.7.2",
+            "keywords": [
+                "zlib",
+                "miniz",
+                "deflate",
+                "encoding"
+            ],
+            "license": "MIT OR Zlib OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miniz_oxide-0.7.2/Cargo.toml",
+            "metadata": null,
+            "name": "miniz_oxide",
+            "publish": null,
+            "readme": "Readme.md",
+            "repository": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "miniz_oxide",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/miniz_oxide-0.7.2/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.2"
+        },
+        {
+            "authors": [
+                "Carl Lerche <me@carllerche.com>",
+                "Thomas de Zeeuw <thomasdezeeuw@gmail.com>",
+                "Tokio Contributors <team@tokio.rs>"
+            ],
+            "categories": [
+                "asynchronous"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"wasi\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wasi",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"wasi\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.149",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(unix)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "Win32_Foundation",
+                        "Win32_Networking_WinSock",
+                        "Win32_Storage_FileSystem",
+                        "Win32_System_IO",
+                        "Win32_System_WindowsProgramming"
+                    ],
+                    "kind": null,
+                    "name": "windows-sys",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.48",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Lightweight non-blocking I/O.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "log"
+                ],
+                "log": [
+                    "dep:log"
+                ],
+                "net": [],
+                "os-ext": [
+                    "os-poll",
+                    "windows-sys/Win32_System_Pipes",
+                    "windows-sys/Win32_Security"
+                ],
+                "os-poll": []
+            },
+            "homepage": "https://github.com/tokio-rs/mio",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#mio@0.8.11",
+            "keywords": [
+                "io",
+                "async",
+                "non-blocking"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mio-0.8.11/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs",
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "aarch64-apple-ios",
+                            "aarch64-linux-android",
+                            "wasm32-wasi",
+                            "x86_64-apple-darwin",
+                            "x86_64-pc-windows-msvc",
+                            "x86_64-unknown-dragonfly",
+                            "x86_64-unknown-freebsd",
+                            "x86_64-unknown-illumos",
+                            "x86_64-unknown-linux-gnu",
+                            "x86_64-unknown-netbsd",
+                            "x86_64-unknown-openbsd"
+                        ]
+                    }
+                },
+                "playground": {
+                    "features": [
+                        "os-poll",
+                        "os-ext",
+                        "net"
+                    ]
+                }
+            },
+            "name": "mio",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/tokio-rs/mio",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "mio",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mio-0.8.11/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "tcp_server",
+                    "required-features": [
+                        "os-poll",
+                        "net"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mio-0.8.11/examples/tcp_server.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "tcp_listenfd_server",
+                    "required-features": [
+                        "os-poll",
+                        "net"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mio-0.8.11/examples/tcp_listenfd_server.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "udp_server",
+                    "required-features": [
+                        "os-poll",
+                        "net"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/mio-0.8.11/examples/udp_server.rs",
                     "test": false
                 }
             ],
-            "version": "2.4.1"
+            "version": "0.8.11"
         },
         {
             "authors": [
@@ -4034,7 +32165,7 @@
                 ]
             },
             "homepage": "https://github.com/fnichol/names",
-            "id": "names 0.12.1-dev (git+https://github.com/fnichol/names.git?rev=760516503b89ddc8bc2ab42d579d4566cfb1054f#760516503b89ddc8bc2ab42d579d4566cfb1054f)",
+            "id": "git+https://github.com/fnichol/names.git?rev=760516503b89ddc8bc2ab42d579d4566cfb1054f#names@0.12.1-dev",
             "keywords": [
                 "name",
                 "random"
@@ -4179,7 +32310,7 @@
                 ]
             },
             "homepage": "https://github.com/fnichol/names",
-            "id": "names 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#names@0.13.0",
             "keywords": [
                 "name",
                 "random"
@@ -4263,6 +32394,3253 @@
         },
         {
             "authors": [
+                "Nikolay Govorov <nikolay_govorov@bk.ru>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": null,
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "prepush-hook",
+                        "precommit-hook",
+                        "postmerge-hook",
+                        "run-cargo-test",
+                        "run-cargo-check",
+                        "run-cargo-clippy",
+                        "run-cargo-fmt"
+                    ],
+                    "kind": "dev",
+                    "name": "cargo-husky",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A tiny, secure, URL-friendly, unique string ID generator for Rust.",
+            "documentation": "https://docs.rs/nanoid",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://github.com/nikolay-govorov/nanoid",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#nanoid@0.4.0",
+            "keywords": [
+                "uuid",
+                "random",
+                "id",
+                "url"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nanoid-0.4.0/Cargo.toml",
+            "metadata": null,
+            "name": "nanoid",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/nikolay-govorov/nanoid.git",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "nanoid",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nanoid-0.4.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.0"
+        },
+        {
+            "authors": [
+                "Lucy <lucy@absolucy.moe>"
+            ],
+            "categories": [
+                "algorithms",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "rdrand",
+                        "js"
+                    ],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "zeroize_derive"
+                    ],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A tiny, fast, zero-dep library for random number generation.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "chacha": [],
+                "default": [
+                    "std",
+                    "tls",
+                    "wyrand",
+                    "pcg64",
+                    "chacha"
+                ],
+                "getrandom": [
+                    "dep:getrandom"
+                ],
+                "pcg64": [],
+                "rdseed": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ],
+                "tls": [
+                    "std",
+                    "wyrand"
+                ],
+                "wyrand": [],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#nanorand@0.7.0",
+            "keywords": [
+                "rand",
+                "random",
+                "no-std",
+                "entropy"
+            ],
+            "license": "Zlib",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nanorand-0.7.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "default-target": "x86_64-unknown-linux-gnu",
+                        "targets": [
+                            "x86_64-pc-windows-msvc"
+                        ]
+                    }
+                }
+            },
+            "name": "nanorand",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Absolucy/nanorand-rs",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "nanorand",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nanorand-0.7.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.0"
+        },
+        {
+            "authors": [
+                "Matt Brubeck <mbrubeck@limpet.net>",
+                "Jonathan Reem <jonathan.reem@gmail.com>"
+            ],
+            "categories": [
+                "rust-patterns",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "panic in debug, intrinsics::unreachable() in release (fork of debug_unreachable)",
+            "documentation": "https://docs.rs/new_debug_unreachable",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#new_debug_unreachable@1.0.6",
+            "keywords": [
+                "optimization",
+                "macro"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/new_debug_unreachable-1.0.6/Cargo.toml",
+            "metadata": null,
+            "name": "new_debug_unreachable",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/mbrubeck/rust-debug-unreachable",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "debug_unreachable",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/new_debug_unreachable-1.0.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "simple",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/new_debug_unreachable-1.0.6/examples/simple.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "check",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/new_debug_unreachable-1.0.6/tests/check.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.6"
+        },
+        {
+            "authors": [
+                "Michael Sproul <micsproul@gmail.com>"
+            ],
+            "categories": [
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "smallvec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Vector data-structure for half-byte values.",
+            "documentation": "https://docs.rs/rust_nibble_vec",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#nibble_vec@0.1.0",
+            "keywords": [
+                "vector",
+                "nibble",
+                "slice",
+                "data-structure",
+                "collection"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nibble_vec-0.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "nibble_vec",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/michaelsproul/rust_nibble_vec",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "nibble_vec",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nibble_vec-0.1.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "debug",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nibble_vec-0.1.0/examples/debug.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "nib_bench",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nibble_vec-0.1.0/benches/nib_bench.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.0"
+        },
+        {
+            "authors": [
+                "contact@geoffroycouprie.com"
+            ],
+            "categories": [
+                "parsing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "minimal-lexical",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proptest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A byte-oriented, zero-copy, parser combinators library",
+            "documentation": "https://docs.rs/nom",
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "docsrs": [],
+                "std": [
+                    "alloc",
+                    "memchr/std",
+                    "minimal-lexical/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#nom@7.1.3",
+            "keywords": [
+                "parser",
+                "parser-combinators",
+                "parsing",
+                "streaming",
+                "bit"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "features": [
+                            "alloc",
+                            "std",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "nom",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Geal/nom",
+            "rust_version": "1.48",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "nom",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "custom_error",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/custom_error.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "json",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/json.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "json_iterator",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/json_iterator.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "iterator",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/iterator.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "s_expression",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/s_expression.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "string",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/examples/string.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "arithmetic",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/arithmetic.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "arithmetic_ast",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/arithmetic_ast.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "css",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/css.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "custom_errors",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/custom_errors.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "float",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/float.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ini",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/ini.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "ini_str",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/ini_str.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "issues",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/issues.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "json",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/json.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mp4",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/mp4.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "multiline",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/multiline.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "overflow",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/overflow.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "reborrow_fold",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/reborrow_fold.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "fnmut",
+                    "required-features": [
+                        "alloc"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/fnmut.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "escaped",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/nom-7.1.3/tests/escaped.rs",
+                    "test": true
+                }
+            ],
+            "version": "7.1.3"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "algorithms",
+                "data-structures",
+                "science"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-integer",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.16",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quickcheck",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "autocfg",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Big integer implementation for Rust",
+            "documentation": "https://docs.rs/num-bigint",
+            "edition": "2018",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "default": [
+                    "std"
+                ],
+                "quickcheck": [
+                    "dep:quickcheck"
+                ],
+                "rand": [
+                    "dep:rand"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "num-integer/std",
+                    "num-traits/std"
+                ]
+            },
+            "homepage": "https://github.com/rust-num/num-bigint",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-bigint@0.4.4",
+            "keywords": [
+                "mathematics",
+                "numerics",
+                "bignum"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std",
+                            "serde",
+                            "rand",
+                            "quickcheck",
+                            "arbitrary"
+                        ]
+                    }
+                }
+            },
+            "name": "num-bigint",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-num/num-bigint",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_bigint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/bigint.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "biguint_scalar",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/biguint_scalar.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "modpow",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/modpow.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "roots",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/roots.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "fuzzed",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/fuzzed.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint_scalar",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/bigint_scalar.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "biguint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/biguint.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint_bitwise",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/tests/bigint_bitwise.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bigint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/benches/bigint.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "factorial",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/benches/factorial.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "gcd",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/benches/gcd.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "roots",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/benches/roots.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "shootout-pidigits",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/benches/shootout-pidigits.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-0.4.4/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.4"
+        },
+        {
+            "authors": [
+                "dignifiedquire <dignifiedquire@gmail.com>",
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "algorithms",
+                "data-structures",
+                "science"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "byteorder",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "spin_no_std"
+                    ],
+                    "kind": null,
+                    "name": "lazy_static",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libm",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-integer",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.39",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "num-iter",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.37",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "smallvec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.10.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_chacha",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_isaac",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_xorshift",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Big integer implementation for Rust",
+            "documentation": "https://docs.rs/num-bigint-dig",
+            "edition": "2021",
+            "features": {
+                "arbitrary": [
+                    "dep:arbitrary"
+                ],
+                "default": [
+                    "std",
+                    "u64_digit"
+                ],
+                "fuzz": [
+                    "arbitrary",
+                    "smallvec/arbitrary"
+                ],
+                "i128": [],
+                "nightly": [],
+                "prime": [
+                    "rand/std_rng"
+                ],
+                "rand": [
+                    "dep:rand"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "num-integer/std",
+                    "num-traits/std",
+                    "smallvec/write",
+                    "rand/std",
+                    "serde/std"
+                ],
+                "u64_digit": [],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": "https://github.com/dignifiedquire/num-bigint",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-bigint-dig@0.8.4",
+            "keywords": [
+                "mathematics",
+                "numerics",
+                "bignum"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std",
+                            "serde",
+                            "rand",
+                            "prime"
+                        ]
+                    }
+                }
+            },
+            "name": "num-bigint-dig",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/dignifiedquire/num-bigint",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_bigint_dig",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/bigint.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "biguint_scalar",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/biguint_scalar.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "serde",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/serde.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "modpow",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/modpow.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "roots",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/roots.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint_scalar",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/bigint_scalar.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "torture",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/torture.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "biguint",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/biguint.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "rand",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/rand.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "bigint_bitwise",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/tests/bigint_bitwise.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-bigint-dig-0.8.4/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.8.4"
+        },
+        {
+            "authors": [
+                "Jacob Pratt <jacob@jhpratt.dev>"
+            ],
+            "categories": [
+                "no-std",
+                "no-std::no-alloc",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "`num_conv` is a crate to convert between integer types without using `as` casts. This provides\nbetter certainty when refactoring, makes the exact behavior of code more explicit, and allows using\nturbofish syntax.\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-conv@0.1.0",
+            "keywords": [
+                "cast",
+                "extend",
+                "truncate",
+                "convert",
+                "integer"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-conv-0.1.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "num-conv",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/jhpratt/num-conv",
+            "rust_version": "1.57.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_conv",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-conv-0.1.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.0"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "algorithms",
+                "science",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Integer traits and functions",
+            "documentation": "https://docs.rs/num-integer",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "i128": [],
+                "std": [
+                    "num-traits/std"
+                ]
+            },
+            "homepage": "https://github.com/rust-num/num-integer",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-integer@0.1.46",
+            "keywords": [
+                "mathematics",
+                "numerics"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std"
+                        ]
+                    }
+                }
+            },
+            "name": "num-integer",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-num/num-integer",
+            "rust_version": "1.31",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_integer",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "roots",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/tests/roots.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "average",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/tests/average.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "gcd",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/benches/gcd.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "roots",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/benches/roots.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "average",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-integer-0.1.46/benches/average.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.1.46"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "algorithms",
+                "science",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-integer",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.42",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "i128"
+                    ],
+                    "kind": null,
+                    "name": "num-traits",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "autocfg",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "External iterators for generic mathematics",
+            "documentation": "https://docs.rs/num-iter",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "i128": [],
+                "std": [
+                    "num-integer/std",
+                    "num-traits/std"
+                ]
+            },
+            "homepage": "https://github.com/rust-num/num-iter",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-iter@0.1.44",
+            "keywords": [
+                "mathematics",
+                "numerics"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-iter-0.1.44/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std"
+                        ]
+                    }
+                }
+            },
+            "name": "num-iter",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-num/num-iter",
+            "rust_version": "1.31",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_iter",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-iter-0.1.44/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.44"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "algorithms",
+                "science",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libm",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "autocfg",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Numeric traits for generic mathematics",
+            "documentation": "https://docs.rs/num-traits",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "i128": [],
+                "libm": [
+                    "dep:libm"
+                ],
+                "std": []
+            },
+            "homepage": "https://github.com/rust-num/num-traits",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.18",
+            "keywords": [
+                "mathematics",
+                "numerics"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.18/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "std"
+                        ],
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "num-traits",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-num/num-traits",
+            "rust_version": "1.31",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_traits",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.18/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cast",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.18/tests/cast.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.18/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.18"
+        },
+        {
+            "authors": [
+                "Sean McArthur <sean@seanmonstar.com>"
+            ],
+            "categories": [
+                "hardware-support"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.26",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(not(windows))",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "hermit-abi",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"hermit\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Get the number of CPUs on a machine.",
+            "documentation": "https://docs.rs/num_cpus",
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#num_cpus@1.16.0",
+            "keywords": [
+                "cpu",
+                "cpus",
+                "cores"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/Cargo.toml",
+            "metadata": null,
+            "name": "num_cpus",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/seanmonstar/num_cpus",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "num_cpus",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "values",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/examples/values.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.16.0"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-alloc",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "alloc",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "compiler_builtins",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "crc32fast",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "flate2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "ahash"
+                    ],
+                    "kind": null,
+                    "name": "hashbrown",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "indexmap",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ruzstd",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "wasmparser",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.118.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A unified interface for reading and writing object file formats.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "all": [
+                    "read",
+                    "write",
+                    "std",
+                    "compression",
+                    "wasm"
+                ],
+                "alloc": [
+                    "dep:alloc"
+                ],
+                "archive": [],
+                "cargo-all": [],
+                "coff": [],
+                "compiler_builtins": [
+                    "dep:compiler_builtins"
+                ],
+                "compression": [
+                    "dep:flate2",
+                    "dep:ruzstd",
+                    "std"
+                ],
+                "core": [
+                    "dep:core"
+                ],
+                "default": [
+                    "read",
+                    "compression"
+                ],
+                "doc": [
+                    "read_core",
+                    "write_std",
+                    "std",
+                    "compression",
+                    "archive",
+                    "coff",
+                    "elf",
+                    "macho",
+                    "pe",
+                    "wasm",
+                    "xcoff"
+                ],
+                "elf": [],
+                "macho": [],
+                "pe": [
+                    "coff"
+                ],
+                "read": [
+                    "read_core",
+                    "archive",
+                    "coff",
+                    "elf",
+                    "macho",
+                    "pe",
+                    "xcoff",
+                    "unaligned"
+                ],
+                "read_core": [],
+                "rustc-dep-of-std": [
+                    "core",
+                    "compiler_builtins",
+                    "alloc",
+                    "memchr/rustc-dep-of-std"
+                ],
+                "std": [
+                    "memchr/std"
+                ],
+                "unaligned": [],
+                "unstable": [],
+                "unstable-all": [
+                    "all",
+                    "unstable"
+                ],
+                "wasm": [
+                    "dep:wasmparser"
+                ],
+                "write": [
+                    "write_std",
+                    "coff",
+                    "elf",
+                    "macho",
+                    "pe",
+                    "xcoff"
+                ],
+                "write_core": [
+                    "dep:crc32fast",
+                    "dep:indexmap",
+                    "dep:hashbrown"
+                ],
+                "write_std": [
+                    "write_core",
+                    "std",
+                    "indexmap?/std",
+                    "crc32fast?/std"
+                ],
+                "xcoff": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#object@0.32.2",
+            "keywords": [
+                "object",
+                "elf",
+                "mach-o",
+                "pe",
+                "coff"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "doc"
+                        ]
+                    }
+                }
+            },
+            "name": "object",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/gimli-rs/object",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "object",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/tests/integration.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "parse_self",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object-0.32.2/tests/parse_self.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.32.2"
+        },
+        {
+            "authors": [],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "async-trait",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.53",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "base64",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bytes",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "clock"
+                    ],
+                    "kind": null,
+                    "name": "chrono",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.31",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "humantime",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "hyper",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking_lot",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "percent-encoding",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "serialize",
+                        "overlapped-lists"
+                    ],
+                    "kind": null,
+                    "name": "quick-xml",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.31.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std",
+                        "std_rng"
+                    ],
+                    "kind": null,
+                    "name": "rand",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "rustls-tls"
+                    ],
+                    "kind": null,
+                    "name": "reqwest",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "ring",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.17",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustls-pemfile",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde_json",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "snafu",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "sync",
+                        "macros",
+                        "rt",
+                        "time",
+                        "io-util"
+                    ],
+                    "kind": null,
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.25.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "tracing",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "url",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "walkdir",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "server"
+                    ],
+                    "kind": "dev",
+                    "name": "hyper",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14.24",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tempfile",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "fs"
+                    ],
+                    "kind": "dev",
+                    "name": "nix",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.27.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_family = \"unix\")",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A generic object store interface for uniformly interacting with AWS S3, Google Cloud Storage, Azure Blob Storage and local files.",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "aws": [
+                    "cloud"
+                ],
+                "azure": [
+                    "cloud"
+                ],
+                "base64": [
+                    "dep:base64"
+                ],
+                "cloud": [
+                    "serde",
+                    "serde_json",
+                    "quick-xml",
+                    "hyper",
+                    "reqwest",
+                    "reqwest/json",
+                    "reqwest/stream",
+                    "chrono/serde",
+                    "base64",
+                    "rand",
+                    "ring"
+                ],
+                "gcp": [
+                    "cloud",
+                    "rustls-pemfile"
+                ],
+                "http": [
+                    "cloud"
+                ],
+                "hyper": [
+                    "dep:hyper"
+                ],
+                "quick-xml": [
+                    "dep:quick-xml"
+                ],
+                "rand": [
+                    "dep:rand"
+                ],
+                "reqwest": [
+                    "dep:reqwest"
+                ],
+                "ring": [
+                    "dep:ring"
+                ],
+                "rustls-pemfile": [
+                    "dep:rustls-pemfile"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "serde_json": [
+                    "dep:serde_json"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#object_store@0.8.0",
+            "keywords": [
+                "object",
+                "storage",
+                "cloud"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object_store-0.8.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true
+                    }
+                }
+            },
+            "name": "object_store",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/apache/arrow-rs/tree/master/object_store",
+            "rust_version": "1.62.1",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "object_store",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object_store-0.8.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "get_range_file",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/object_store-0.8.0/tests/get_range_file.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.8.0"
+        },
+        {
+            "authors": [
+                "Aleksey Kladov <aleksey.kladov@gmail.com>"
+            ],
+            "categories": [
+                "rust-patterns",
+                "memory-management"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "critical-section",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking_lot_core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "portable-atomic",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": "dev",
+                    "name": "critical-section",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "regex",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Single assignment cells and lazy values.",
+            "documentation": "https://docs.rs/once_cell",
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "race"
+                ],
+                "atomic-polyfill": [
+                    "critical-section"
+                ],
+                "critical-section": [
+                    "dep:critical-section",
+                    "portable-atomic"
+                ],
+                "default": [
+                    "std"
+                ],
+                "parking_lot": [
+                    "dep:parking_lot_core"
+                ],
+                "portable-atomic": [
+                    "dep:portable-atomic"
+                ],
+                "race": [],
+                "std": [
+                    "alloc"
+                ],
+                "unstable": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0",
+            "keywords": [
+                "lazy",
+                "static"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "once_cell",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/matklad/once_cell",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "once_cell",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "bench",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "bench_acquire",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/bench_acquire.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "lazy_static",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/lazy_static.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "reentrant_init_deadlocks",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/reentrant_init_deadlocks.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "regex",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/regex.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "test_synchronization",
+                    "required-features": [
+                        "std"
+                    ],
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/examples/test_synchronization.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "it",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.19.0/tests/it/main.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.19.0"
+        },
+        {
+            "authors": [
                 "dylni"
             ],
             "categories": [
@@ -4343,7 +35721,7 @@
                 ]
             },
             "homepage": null,
-            "id": "os_str_bytes 6.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#os_str_bytes@6.0.0",
             "keywords": [
                 "bytes",
                 "osstr",
@@ -4396,6 +35774,3417 @@
         },
         {
             "authors": [
+                "Stjepan Glavina <stjepang@gmail.com>",
+                "The Rust Project Developers"
+            ],
+            "categories": [
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "easy-parallel",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "loom",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(loom)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Thread parking and unparking",
+            "documentation": "https://docs.rs/parking",
+            "edition": "2018",
+            "features": {
+                "loom": [
+                    "dep:loom"
+                ]
+            },
+            "homepage": "https://github.com/smol-rs/parking",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#parking@2.2.0",
+            "keywords": [
+                "park",
+                "notify",
+                "thread",
+                "wake",
+                "condition"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/Cargo.toml",
+            "metadata": null,
+            "name": "parking",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/smol-rs/parking",
+            "rust_version": "1.51",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "parking",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "parking",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/tests/parking.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "loom",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking-2.2.0/tests/loom.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.2.0"
+        },
+        {
+            "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "lock_api",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking_lot_core",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "More compact and efficient implementations of the standard synchronization primitives.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "arc_lock": [
+                    "lock_api/arc_lock"
+                ],
+                "deadlock_detection": [
+                    "parking_lot_core/deadlock_detection"
+                ],
+                "default": [],
+                "hardware-lock-elision": [],
+                "nightly": [
+                    "parking_lot_core/nightly",
+                    "lock_api/nightly"
+                ],
+                "owning_ref": [
+                    "lock_api/owning_ref"
+                ],
+                "send_guard": [],
+                "serde": [
+                    "lock_api/serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.1",
+            "keywords": [
+                "mutex",
+                "condvar",
+                "rwlock",
+                "once",
+                "thread"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot-0.12.1/Cargo.toml",
+            "metadata": null,
+            "name": "parking_lot",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/Amanieu/parking_lot",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "parking_lot",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot-0.12.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "issue_203",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot-0.12.1/tests/issue_203.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.12.1"
+        },
+        {
+            "authors": [
+                "Amanieu d'Antras <amanieu@gmail.com>"
+            ],
+            "categories": [
+                "concurrency"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "backtrace",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.60",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "cfg-if",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "petgraph",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "smallvec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.6.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thread-id",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^4.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "redox_syscall",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(target_os = \"redox\")",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "libc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.95",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(unix)",
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "windows-targets",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.48.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": "cfg(windows)",
+                    "uses_default_features": true
+                }
+            ],
+            "description": "An advanced API for creating custom synchronization primitives.",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "backtrace": [
+                    "dep:backtrace"
+                ],
+                "deadlock_detection": [
+                    "petgraph",
+                    "thread-id",
+                    "backtrace"
+                ],
+                "nightly": [],
+                "petgraph": [
+                    "dep:petgraph"
+                ],
+                "thread-id": [
+                    "dep:thread-id"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.9",
+            "keywords": [
+                "mutex",
+                "condvar",
+                "rwlock",
+                "once",
+                "thread"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot_core-0.9.9/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "parking_lot_core",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/Amanieu/parking_lot",
+            "rust_version": "1.49.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "parking_lot_core",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot_core-0.9.9/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/parking_lot_core-0.9.9/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.9.9"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "authentication",
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "base64ct",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand_core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "subtle",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                }
+            ],
+            "description": "Traits which describe the functionality of password hashing algorithms,\nas well as a `no_std`-friendly implementation of the PHC string format\n(a well-defined subset of the Modular Crypt Format a.k.a. MCF)\n",
+            "documentation": "https://docs.rs/password-hash",
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "base64ct/alloc"
+                ],
+                "default": [
+                    "rand_core"
+                ],
+                "getrandom": [
+                    "rand_core/getrandom"
+                ],
+                "rand_core": [
+                    "dep:rand_core"
+                ],
+                "std": [
+                    "alloc",
+                    "base64ct/std",
+                    "rand_core/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#password-hash@0.5.0",
+            "keywords": [
+                "crypt",
+                "mcf",
+                "password",
+                "pbkdf",
+                "phc"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "password-hash",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/traits/tree/master/password-hash",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "password_hash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_vectors",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/tests/test_vectors.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "encoding",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/tests/encoding.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "password_hash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/tests/password_hash.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "hashing",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/password-hash-0.5.0/tests/hashing.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.0"
+        },
+        {
+            "authors": [
+                "Dan Reeves <hey@danreev.es>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Rust implementation of cleanname or path.Clean",
+            "documentation": "https://docs.rs/path-clean",
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#path-clean@1.0.1",
+            "keywords": [
+                "path",
+                "clean"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/path-clean-1.0.1/Cargo.toml",
+            "metadata": null,
+            "name": "path-clean",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/danreeves/path-clean",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "path_clean",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/path-clean-1.0.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "clean_benchmark",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/path-clean-1.0.1/benches/clean_benchmark.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.1"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "authentication",
+                "cryptography",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "mac"
+                    ],
+                    "kind": null,
+                    "name": "digest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "hmac",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "rand_core"
+                    ],
+                    "kind": null,
+                    "name": "password-hash",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rayon",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "sha1",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "sha2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hmac",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "sha1",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "sha2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "streebog",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Generic implementation of PBKDF2",
+            "documentation": "https://docs.rs/pbkdf2",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "hmac"
+                ],
+                "hmac": [
+                    "dep:hmac"
+                ],
+                "parallel": [
+                    "rayon",
+                    "std"
+                ],
+                "password-hash": [
+                    "dep:password-hash"
+                ],
+                "rayon": [
+                    "dep:rayon"
+                ],
+                "sha1": [
+                    "dep:sha1"
+                ],
+                "sha2": [
+                    "dep:sha2"
+                ],
+                "simple": [
+                    "hmac",
+                    "password-hash",
+                    "sha2"
+                ],
+                "std": [
+                    "password-hash/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pbkdf2@0.12.2",
+            "keywords": [
+                "crypto",
+                "hashing",
+                "password",
+                "phf"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pbkdf2-0.12.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "pbkdf2",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/password-hashes/tree/master/pbkdf2",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pbkdf2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pbkdf2-0.12.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "mod",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pbkdf2-0.12.2/tests/mod.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "simple",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pbkdf2-0.12.2/tests/simple.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "lib",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pbkdf2-0.12.2/benches/lib.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.12.2"
+        },
+        {
+            "authors": [
+                "Jonathan Creekmore <jonathan@thecreekmores.org>"
+            ],
+            "categories": [
+                "cryptography"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "alloc"
+                    ],
+                    "kind": null,
+                    "name": "base64",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proptest",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_json",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Parse and encode PEM-encoded data.",
+            "documentation": "https://docs.rs/pem/",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "std": [
+                    "base64/std",
+                    "serde?/std"
+                ]
+            },
+            "homepage": "https://github.com/jcreekmore/pem-rs.git",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pem@2.0.1",
+            "keywords": [
+                "no-std",
+                "no_std",
+                "pem"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-2.0.1/Cargo.toml",
+            "metadata": null,
+            "name": "pem",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/jcreekmore/pem-rs.git",
+            "rust_version": "1.60.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pem",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-2.0.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "pem_benchmark",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-2.0.1/benches/pem_benchmark.rs",
+                    "test": false
+                }
+            ],
+            "version": "2.0.1"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "data-structures",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "base64ct",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS Structures, implementing a\nstrict subset of the original Privacy-Enhanced Mail encoding intended\nspecifically for use with cryptographic keys, certificates, and other messages.\nProvides a no_std-friendly, constant-time implementation suitable for use with\ncryptographic private keys.\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "base64ct/alloc"
+                ],
+                "std": [
+                    "alloc",
+                    "base64ct/std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pem-rfc7468@0.7.0",
+            "keywords": [
+                "crypto",
+                "key",
+                "pem",
+                "pkcs",
+                "rsa"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-rfc7468-0.7.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "pem-rfc7468",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/pem-rfc7468",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pem_rfc7468",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-rfc7468-0.7.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "encode",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-rfc7468-0.7.0/tests/encode.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "decode",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pem-rfc7468-0.7.0/tests/decode.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.0"
+        },
+        {
+            "authors": [
+                "The rust-url developers"
+            ],
+            "categories": [
+                "no_std"
+            ],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Percent encoding and decoding",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#percent-encoding@2.3.1",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/percent-encoding-2.3.1/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ]
+                    }
+                }
+            },
+            "name": "percent-encoding",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/servo/rust-url/",
+            "rust_version": "1.51",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "percent_encoding",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/percent-encoding-2.3.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.3.1"
+        },
+        {
+            "authors": [
+                "bluss",
+                "mitchmindtree"
+            ],
+            "categories": [
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "fixedbitset",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "indexmap",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quickcheck",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde_derive",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "bincode",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "defmac",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "itertools",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.11.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "odds",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Graph data structure library. Provides graph types and graph algorithms.",
+            "documentation": "https://docs.rs/petgraph/",
+            "edition": "2018",
+            "features": {
+                "all": [
+                    "unstable",
+                    "quickcheck",
+                    "matrix_graph",
+                    "stable_graph",
+                    "graphmap"
+                ],
+                "default": [
+                    "graphmap",
+                    "stable_graph",
+                    "matrix_graph"
+                ],
+                "generate": [],
+                "graphmap": [],
+                "matrix_graph": [],
+                "quickcheck": [
+                    "dep:quickcheck"
+                ],
+                "serde": [
+                    "dep:serde"
+                ],
+                "serde-1": [
+                    "serde",
+                    "serde_derive"
+                ],
+                "serde_derive": [
+                    "dep:serde_derive"
+                ],
+                "stable_graph": [],
+                "unstable": [
+                    "generate"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#petgraph@0.6.4",
+            "keywords": [
+                "data-structure",
+                "graph",
+                "unionfind",
+                "graph-algorithms"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "features": [
+                            "serde-1",
+                            "quickcheck"
+                        ]
+                    }
+                },
+                "release": {
+                    "no-dev-version": true
+                }
+            },
+            "name": "petgraph",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/petgraph/petgraph",
+            "rust_version": "1.64",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "petgraph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "graphmap",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/graphmap.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "operator",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/operator.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "k_shortest_path",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/k_shortest_path.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "graph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/graph.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "list",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/list.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unionfind",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/unionfind.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "iso",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/iso.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "quickcheck",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/quickcheck.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "floyd_warshall",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/floyd_warshall.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "matching",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/matching.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stable_graph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/tests/stable_graph.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "bellman_ford",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/bellman_ford.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "k_shortest_path",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/k_shortest_path.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "ograph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/ograph.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "serialize",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/serialize.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "dijkstra",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/dijkstra.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "unionfind",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/unionfind.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "iso",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/iso.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "feedback_arc_set",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/feedback_arc_set.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "floyd_warshall",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/floyd_warshall.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "matrix_graph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/matrix_graph.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "matching",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/matching.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "stable_graph",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/petgraph-0.6.4/benches/stable_graph.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.6.4"
+        },
+        {
+            "authors": [
+                "Naja Melan <najamelan@autistici.org>"
+            ],
+            "categories": [
+                "asynchronous"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "assert_matches",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "attributes"
+                    ],
+                    "kind": "dev",
+                    "name": "async-std",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "async_std"
+                    ],
+                    "kind": "dev",
+                    "name": "async_executors",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "futures",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "wasm-bindgen-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "rustc_version",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Observer pattern which generates a futures 0.3 stream of events",
+            "documentation": "https://docs.rs/pharos",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pharos@0.5.3",
+            "keywords": [
+                "observer",
+                "futures",
+                "stream",
+                "broadcast",
+                "publish_subscribe"
+            ],
+            "license": "Unlicense",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pharos-0.5.3/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "targets": []
+                    }
+                }
+            },
+            "name": "pharos",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/najamelan/pharos",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pharos",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pharos-0.5.3/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pharos-0.5.3/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.5.3"
+        },
+        {
+            "authors": [
+                "Steven Fackler <sfackler@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "siphasher",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "uncased",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "unicase",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.4.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Support code shared by PHF libraries",
+            "documentation": null,
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": [],
+                "uncased": [
+                    "dep:uncased"
+                ],
+                "unicase": [
+                    "dep:unicase"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#phf_shared@0.10.0",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/phf_shared-0.10.0/Cargo.toml",
+            "metadata": null,
+            "name": "phf_shared",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/sfackler/rust-phf",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "phf_shared",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/phf_shared-0.10.0/src/lib.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.10.0"
+        },
+        {
+            "authors": [
+                "Yevhenii Reizner <razrfalcon@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "An ultra simple CLI arguments parser.",
+            "documentation": "https://docs.rs/pico-args/",
+            "edition": "2018",
+            "features": {
+                "combined-flags": [],
+                "default": [],
+                "eq-separator": [],
+                "short-space-opt": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pico-args@0.5.0",
+            "keywords": [
+                "args",
+                "cli"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pico-args-0.5.0/Cargo.toml",
+            "metadata": null,
+            "name": "pico-args",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RazrFalcon/pico-args",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pico_args",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pico-args-0.5.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "dash_dash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pico-args-0.5.0/examples/dash_dash.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "app",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pico-args-0.5.0/examples/app.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "tests",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pico-args-0.5.0/tests/tests.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.5.0"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "no-std",
+                "no-std::no-alloc",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pin-project-internal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=1.1.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A crate for safe and ergonomic pin-projection.\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pin-project@1.1.5",
+            "keywords": [
+                "pin",
+                "macros",
+                "attribute"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/Cargo.toml",
+            "metadata": {
+                "cargo_check_external_types": {
+                    "allowed_external_types": [
+                        "pin_project_internal::*"
+                    ]
+                },
+                "docs": {
+                    "rs": {
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "pin-project",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/taiki-e/pin-project",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pin_project",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "unsafe_unpin-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/unsafe_unpin-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "unsafe_unpin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/unsafe_unpin.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "struct-default",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/struct-default.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "project_replace-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/project_replace-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "not_unpin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/not_unpin.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "project_replace",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/project_replace.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "pinned_drop-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/pinned_drop-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "enum-default",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/enum-default.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "enum-default-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/enum-default-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "pinned_drop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/pinned_drop.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "struct-default-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/struct-default-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "not_unpin-expanded",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/examples/not_unpin-expanded.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "proper_unpin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/proper_unpin.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "drop_order",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/drop_order.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "pin_project",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/pin_project.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "repr_packed",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/repr_packed.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "unsafe_unpin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/unsafe_unpin.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "cfg",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/cfg.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "expandtest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/expandtest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/compiletest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "pinned_drop",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-1.1.5/tests/pinned_drop.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.1.5"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "no-std",
+                "no-std::no-alloc",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.60",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.25",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full",
+                        "visit-mut"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Implementation detail of the `pin-project` crate.\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pin-project-internal@1.1.5",
+            "keywords": [
+                "pin",
+                "macros",
+                "attribute"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-internal-1.1.5/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "pin-project-internal",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/taiki-e/pin-project",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "pin_project_internal",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-internal-1.1.5/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.1.5"
+        },
+        {
+            "authors": [],
+            "categories": [
+                "no-std",
+                "no-std::no-alloc",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A lightweight version of pin-project written with declarative macros.\n",
+            "documentation": null,
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.14",
+            "keywords": [
+                "pin",
+                "macros"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/Cargo.toml",
+            "metadata": {
+                "cargo_check_external_types": {
+                    "allowed_external_types": []
+                },
+                "docs": {
+                    "rs": {
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "pin-project-lite",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/taiki-e/pin-project-lite",
+            "rust_version": "1.37",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pin_project_lite",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "proper_unpin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/tests/proper_unpin.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "drop_order",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/tests/drop_order.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/tests/test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "expandtest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/tests/expandtest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-project-lite-0.2.14/tests/compiletest.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.14"
+        },
+        {
+            "authors": [
+                "Josef Brandl <mail@josefbrandl.de>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Utilities for pinning\n",
+            "documentation": "https://docs.rs/pin-utils",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pin-utils@0.1.0",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "pin-utils",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang-nursery/pin-utils",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pin_utils",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "stack_pin",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/tests/stack_pin.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "projection",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pin-utils-0.1.0/tests/projection.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.0"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "data-structures",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "oid"
+                    ],
+                    "kind": null,
+                    "name": "der",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pkcs8",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.10",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "spki",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "db"
+                    ],
+                    "kind": "dev",
+                    "name": "const-oid",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tempfile",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #1:\nRSA Cryptography Specifications Version 2.2 (RFC 8017)\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [
+                    "der/alloc",
+                    "zeroize",
+                    "pkcs8?/alloc"
+                ],
+                "pem": [
+                    "alloc",
+                    "der/pem",
+                    "pkcs8?/pem"
+                ],
+                "pkcs8": [
+                    "dep:pkcs8"
+                ],
+                "std": [
+                    "der/std",
+                    "alloc"
+                ],
+                "zeroize": [
+                    "der/zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pkcs1@0.7.5",
+            "keywords": [
+                "crypto",
+                "key",
+                "pem",
+                "pkcs",
+                "rsa"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "pkcs1",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/pkcs1",
+            "rust_version": "1.60",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pkcs1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "private_key",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/tests/private_key.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "params",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/tests/params.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "public_key",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/tests/public_key.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "traits",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs1-0.7.5/tests/traits.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.7.5"
+        },
+        {
+            "authors": [
+                "RustCrypto Developers"
+            ],
+            "categories": [
+                "cryptography",
+                "data-structures",
+                "encoding",
+                "no-std",
+                "parser-implementations"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "oid"
+                    ],
+                    "kind": null,
+                    "name": "der",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "pkcs5",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rand_core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "spki",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.7.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "subtle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "hex-literal",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tempfile",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8:\nPrivate-Key Information Syntax Specification (RFC 5208), with additional\nsupport for PKCS#8v2 asymmetric key packages (RFC 5958)\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "3des": [
+                    "encryption",
+                    "pkcs5/3des"
+                ],
+                "alloc": [
+                    "der/alloc",
+                    "der/zeroize",
+                    "spki/alloc"
+                ],
+                "des-insecure": [
+                    "encryption",
+                    "pkcs5/des-insecure"
+                ],
+                "encryption": [
+                    "alloc",
+                    "pkcs5/alloc",
+                    "pkcs5/pbes2",
+                    "rand_core"
+                ],
+                "getrandom": [
+                    "rand_core/getrandom"
+                ],
+                "pem": [
+                    "alloc",
+                    "der/pem",
+                    "spki/pem"
+                ],
+                "pkcs5": [
+                    "dep:pkcs5"
+                ],
+                "rand_core": [
+                    "dep:rand_core"
+                ],
+                "sha1-insecure": [
+                    "encryption",
+                    "pkcs5/sha1-insecure"
+                ],
+                "std": [
+                    "alloc",
+                    "der/std",
+                    "spki/std"
+                ],
+                "subtle": [
+                    "dep:subtle"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#pkcs8@0.10.2",
+            "keywords": [
+                "crypto",
+                "key",
+                "pkcs",
+                "private"
+            ],
+            "license": "Apache-2.0 OR MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs8-0.10.2/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "pkcs8",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/RustCrypto/formats/tree/master/pkcs8",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "pkcs8",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs8-0.10.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "encrypted_private_key",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs8-0.10.2/tests/encrypted_private_key.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "private_key",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs8-0.10.2/tests/private_key.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "traits",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/pkcs8-0.10.2/tests/traits.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.10.2"
+        },
+        {
+            "authors": [
+                "Jacob Pratt <jacob@jhpratt.dev>"
+            ],
+            "categories": [
+                "no-std",
+                "no-std::no-alloc",
+                "rust-patterns"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "powerfmt-macros",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "    `powerfmt` is a library that provides utilities for formatting values. This crate makes it\n    significantly easier to support filling to a minimum width with alignment, avoid heap\n    allocation, and avoid repetitive calculations.\n",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std",
+                    "macros"
+                ],
+                "macros": [
+                    "dep:powerfmt-macros"
+                ],
+                "std": [
+                    "alloc"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#powerfmt@0.2.0",
+            "keywords": [
+                "display",
+                "format",
+                "fmt",
+                "formatter",
+                "extension"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/powerfmt-0.2.0/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "__powerfmt_docs",
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "powerfmt",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/jhpratt/powerfmt",
+            "rust_version": "1.67.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "powerfmt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/powerfmt-0.2.0/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.2.0"
+        },
+        {
+            "authors": [
                 "The CryptoCorrosion Contributors"
             ],
             "categories": [
@@ -4416,7 +39205,7 @@
                 "std": []
             },
             "homepage": null,
-            "id": "ppv-lite86 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ppv-lite86@0.2.16",
             "keywords": [
                 "crypto",
                 "simd",
@@ -4444,7 +39233,7 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "ppv-lite86",
+                    "name": "ppv_lite86",
                     "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ppv-lite86-0.2.16/src/lib.rs",
                     "test": true
                 }
@@ -4453,6 +39242,162 @@
         },
         {
             "authors": [
+                "Emilio Cobos \u00c1lvarez <emilio@crisal.io>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "A library intending to be a base dependency to expose a precomputed hash",
+            "documentation": null,
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#precomputed-hash@0.1.1",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/precomputed-hash-0.1.1/Cargo.toml",
+            "metadata": null,
+            "name": "precomputed-hash",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/emilio/precomputed-hash",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "precomputed_hash",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/precomputed-hash-0.1.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.1"
+        },
+        {
+            "authors": [
+                "Bastian K\u00f6cher <git@kchr.de>"
+            ],
+            "categories": [
+                "development-tools::procedural-macro-helpers"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "toml_edit",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.21.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.67",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.33",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.37",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Replacement for crate (macro_rules keyword) in proc-macros\n",
+            "documentation": "https://docs.rs/proc-macro-crate",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-crate@3.1.0",
+            "keywords": [
+                "macro-rules",
+                "crate",
+                "macro",
+                "proc-macro"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-crate-3.1.0/Cargo.toml",
+            "metadata": null,
+            "name": "proc-macro-crate",
+            "publish": null,
+            "readme": "./README.md",
+            "repository": "https://github.com/bkchr/proc-macro-crate",
+            "rust_version": "1.67.0",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "proc_macro_crate",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-crate-3.1.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "workspace_deps",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-crate-3.1.0/tests/workspace_deps.rs",
+                    "test": true
+                }
+            ],
+            "version": "3.1.0"
+        },
+        {
+            "authors": [
                 "CreepySkeleton <creepy-skeleton@yandex.ru>"
             ],
             "categories": [
@@ -4574,7 +39519,7 @@
                 ]
             },
             "homepage": null,
-            "id": "proc-macro-error 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-error@1.0.4",
             "keywords": [
                 "proc-macro",
                 "error",
@@ -4610,7 +39555,7 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "proc-macro-error",
+                    "name": "proc_macro_error",
                     "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-error-1.0.4/src/lib.rs",
                     "test": true
                 },
@@ -4722,7 +39667,7 @@
             "edition": "2018",
             "features": {},
             "homepage": null,
-            "id": "proc-macro-error-attr 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro-error-attr@1.0.4",
             "keywords": [],
             "license": "MIT OR Apache-2.0",
             "license_file": null,
@@ -4754,7 +39699,7 @@
                     "kind": [
                         "proc-macro"
                     ],
-                    "name": "proc-macro-error-attr",
+                    "name": "proc_macro_error_attr",
                     "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro-error-attr-1.0.4/src/lib.rs",
                     "test": true
                 },
@@ -4788,11 +39733,23 @@
                 {
                     "features": [],
                     "kind": null,
-                    "name": "unicode-xid",
+                    "name": "unicode-ident",
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^0.2",
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "flate2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": true
@@ -4808,11 +39765,47 @@
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rayon",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "tar",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
                 }
             ],
-            "description": "A substitute implementation of the compiler's `proc_macro` API to decouple\ntoken-based libraries from the procedural macro use case.\n",
+            "description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
             "documentation": "https://docs.rs/proc-macro2",
-            "edition": "2018",
+            "edition": "2021",
             "features": {
                 "default": [
                     "proc-macro"
@@ -4822,14 +39815,15 @@
                 "span-locations": []
             },
             "homepage": null,
-            "id": "proc-macro2 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.79",
             "keywords": [
-                "macros"
+                "macros",
+                "syn"
             ],
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/Cargo.toml",
             "metadata": {
                 "docs": {
                     "rs": {
@@ -4841,7 +39835,8 @@
                             "--cfg",
                             "procmacro2_semver_exempt",
                             "--cfg",
-                            "doc_cfg"
+                            "doc_cfg",
+                            "--generate-link-to-definition"
                         ],
                         "targets": [
                             "x86_64-unknown-linux-gnu"
@@ -4858,7 +39853,154 @@
             "publish": null,
             "readme": "README.md",
             "repository": "https://github.com/dtolnay/proc-macro2",
-            "rust_version": "1.31",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "proc_macro2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "features",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/features.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_size",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test_size.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_fmt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/test_fmt.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "comments",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/comments.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "marker",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/tests/marker.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.79/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.79"
+        },
+        {
+            "authors": [
+                "rushmorem <rushmore@webenchanter.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [],
+            "description": "Common types for the public suffix implementation crates",
+            "documentation": "https://docs.rs/psl-types",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#psl-types@2.0.11",
+            "keywords": [
+                "tld",
+                "gtld",
+                "cctld",
+                "psl",
+                "no_std"
+            ],
+            "license": "MIT/Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psl-types-2.0.11/Cargo.toml",
+            "metadata": null,
+            "name": "psl-types",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/addr-rs/psl-types",
+            "rust_version": null,
             "source": "registry+https://github.com/rust-lang/crates.io-index",
             "targets": [
                 {
@@ -4871,8 +40013,67 @@
                     "kind": [
                         "lib"
                     ],
-                    "name": "proc-macro2",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/src/lib.rs",
+                    "name": "psl_types",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psl-types-2.0.11/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "2.0.11"
+        },
+        {
+            "authors": [
+                "Simonas Kazlauskas <psm@kazlauskas.me>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "build",
+                    "name": "cc",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Portable Stack Manipulation: stack manipulation and introspection routines",
+            "documentation": "https://docs.rs/psm/0.1.20",
+            "edition": "2015",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#psm@0.1.21",
+            "keywords": [
+                "stack",
+                "no_std"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/Cargo.toml",
+            "metadata": null,
+            "name": "psm",
+            "publish": null,
+            "readme": "README.mkd",
+            "repository": "https://github.com/rust-lang/stacker/",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2015",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "psm",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/src/lib.rs",
                     "test": true
                 },
                 {
@@ -4881,12 +40082,96 @@
                     ],
                     "doc": false,
                     "doctest": false,
-                    "edition": "2018",
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "thread",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/thread.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "panics",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/panics.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "on_stack_fibo",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/on_stack_fibo.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "replace_stack_1",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/replace_stack_1.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "info",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/info.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "on_stack_fibo_alloc_each_frame",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/examples/on_stack_fibo_alloc_each_frame.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2015",
                     "kind": [
                         "test"
                     ],
-                    "name": "features",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/tests/features.rs",
+                    "name": "stack_direction",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/tests/stack_direction.rs",
                     "test": true
                 },
                 {
@@ -4895,12 +40180,12 @@
                     ],
                     "doc": false,
                     "doctest": false,
-                    "edition": "2018",
+                    "edition": "2015",
                     "kind": [
                         "test"
                     ],
-                    "name": "test",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/tests/test.rs",
+                    "name": "stack_direction_2",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/tests/stack_direction_2.rs",
                     "test": true
                 },
                 {
@@ -4909,58 +40194,402 @@
                     ],
                     "doc": false,
                     "doctest": false,
-                    "edition": "2018",
-                    "kind": [
-                        "test"
-                    ],
-                    "name": "test_fmt",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/tests/test_fmt.rs",
-                    "test": true
-                },
-                {
-                    "crate_types": [
-                        "bin"
-                    ],
-                    "doc": false,
-                    "doctest": false,
-                    "edition": "2018",
-                    "kind": [
-                        "test"
-                    ],
-                    "name": "comments",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/tests/comments.rs",
-                    "test": true
-                },
-                {
-                    "crate_types": [
-                        "bin"
-                    ],
-                    "doc": false,
-                    "doctest": false,
-                    "edition": "2018",
-                    "kind": [
-                        "test"
-                    ],
-                    "name": "marker",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/tests/marker.rs",
-                    "test": true
-                },
-                {
-                    "crate_types": [
-                        "bin"
-                    ],
-                    "doc": false,
-                    "doctest": false,
-                    "edition": "2018",
+                    "edition": "2015",
                     "kind": [
                         "custom-build"
                     ],
                     "name": "build-script-build",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.36/build.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/psm-0.1.21/build.rs",
                     "test": false
                 }
             ],
-            "version": "1.0.36"
+            "version": "0.1.21"
+        },
+        {
+            "authors": [
+                "David Koloski <djkoloski@gmail.com>"
+            ],
+            "categories": [
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ptr_meta_derive",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=0.1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A radioactive stabilization of the ptr_meta rfc",
+            "documentation": "https://docs.rs/ptr_meta",
+            "edition": "2018",
+            "features": {
+                "default": [
+                    "std"
+                ],
+                "std": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ptr_meta@0.1.4",
+            "keywords": [
+                "ptr",
+                "meta",
+                "no_std"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ptr_meta-0.1.4/Cargo.toml",
+            "metadata": null,
+            "name": "ptr_meta",
+            "publish": null,
+            "readme": "crates-io.md",
+            "repository": "https://github.com/djkoloski/ptr_meta",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ptr_meta",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ptr_meta-0.1.4/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.4"
+        },
+        {
+            "authors": [
+                "David Koloski <djkoloski@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full"
+                    ],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Macros for ptr_meta",
+            "documentation": "https://docs.rs/ptr_meta_derive",
+            "edition": "2018",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ptr_meta_derive@0.1.4",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ptr_meta_derive-0.1.4/Cargo.toml",
+            "metadata": null,
+            "name": "ptr_meta_derive",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/djkoloski/ptr_meta",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "ptr_meta_derive",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ptr_meta_derive-0.1.4/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.1.4"
+        },
+        {
+            "authors": [
+                "Arthur Silva <arthurprs@gmail.com>"
+            ],
+            "categories": [
+                "caching",
+                "concurrency",
+                "data-structures"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ahash",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "equivalent",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "raw",
+                        "inline-more"
+                    ],
+                    "kind": null,
+                    "name": "hashbrown",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "parking_lot",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.12",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "shuttle",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.6",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.5",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "small_rng"
+                    ],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand_distr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "full"
+                    ],
+                    "kind": "dev",
+                    "name": "tokio",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Lightweight and high performance concurrent cache",
+            "documentation": null,
+            "edition": "2021",
+            "features": {
+                "ahash": [
+                    "dep:ahash"
+                ],
+                "default": [
+                    "ahash",
+                    "parking_lot"
+                ],
+                "parking_lot": [
+                    "dep:parking_lot"
+                ],
+                "shuttle": [
+                    "dep:shuttle"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#quick_cache@0.4.2",
+            "keywords": [
+                "lru",
+                "concurrent",
+                "cache"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/Cargo.toml",
+            "metadata": null,
+            "name": "quick_cache",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/arthurprs/quick-cache",
+            "rust_version": "1.63",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "quick_cache",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "equivalent",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/examples/equivalent.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "eviction_listener",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/examples/eviction_listener.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "custom_weight",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/examples/custom_weight.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "benchmarks",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quick_cache-0.4.2/benches/benchmarks.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.4.2"
         },
         {
             "authors": [
@@ -4978,7 +40607,7 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.36",
+                    "req": "^1.0.74",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": false
@@ -5004,7 +40633,7 @@
                     "optional": false,
                     "registry": null,
                     "rename": null,
-                    "req": "^1.0.52",
+                    "req": "^1.0.66",
                     "source": "registry+https://github.com/rust-lang/crates.io-index",
                     "target": null,
                     "uses_default_features": true
@@ -5022,17 +40651,21 @@
                 ]
             },
             "homepage": null,
-            "id": "quote 1.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.35",
             "keywords": [
+                "macros",
                 "syn"
             ],
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.15/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/Cargo.toml",
             "metadata": {
                 "docs": {
                     "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
                         "targets": [
                             "x86_64-unknown-linux-gnu"
                         ]
@@ -5043,7 +40676,7 @@
             "publish": null,
             "readme": "README.md",
             "repository": "https://github.com/dtolnay/quote",
-            "rust_version": "1.31",
+            "rust_version": "1.56",
             "source": "registry+https://github.com/rust-lang/crates.io-index",
             "targets": [
                 {
@@ -5057,7 +40690,7 @@
                         "lib"
                     ],
                     "name": "quote",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.15/src/lib.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/src/lib.rs",
                     "test": true
                 },
                 {
@@ -5071,7 +40704,7 @@
                         "test"
                     ],
                     "name": "test",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.15/tests/test.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/test.rs",
                     "test": true
                 },
                 {
@@ -5085,11 +40718,302 @@
                         "test"
                     ],
                     "name": "compiletest",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.15/tests/compiletest.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/quote-1.0.35/tests/compiletest.rs",
                     "test": true
                 }
             ],
-            "version": "1.0.15"
+            "version": "1.0.35"
+        },
+        {
+            "authors": [
+                "Nika Layzell <nika@thelayzells.com>",
+                "myrrlyn <self@myrrlyn.dev>"
+            ],
+            "categories": [
+                "concurrency",
+                "no-std"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "static_assertions",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Portable interfaces for maybe-atomic types",
+            "documentation": "https://docs.rs/radium",
+            "edition": "2018",
+            "features": {},
+            "homepage": "https://github.com/bitvecto-rs/radium",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#radium@0.7.0",
+            "keywords": [
+                "atomic",
+                "cell",
+                "sync",
+                "generic",
+                "trait"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radium-0.7.0/Cargo.toml",
+            "metadata": null,
+            "name": "radium",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/bitvecto-rs/radium",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "radium",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radium-0.7.0/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radium-0.7.0/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.7.0"
+        },
+        {
+            "authors": [
+                "Michael Sproul <micsproul@gmail.com>"
+            ],
+            "categories": [
+                "data-structures",
+                "text-processing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "endian-type",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "nibble_vec",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "serde",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "criterion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rand",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "serde_test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Generic radix trie data-structure.",
+            "documentation": "https://docs.rs/radix_trie/",
+            "edition": "2018",
+            "features": {
+                "serde": [
+                    "dep:serde"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#radix_trie@0.2.1",
+            "keywords": [
+                "trie",
+                "patricia",
+                "collection",
+                "generic",
+                "prefix"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/Cargo.toml",
+            "metadata": null,
+            "name": "radix_trie",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/michaelsproul/rust_radix_trie",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "radix_trie",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "child_iter",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/examples/child_iter.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "opt",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/examples/opt.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "string_frequency",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/examples/string_frequency.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "example"
+                    ],
+                    "name": "debug",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/examples/debug.rs",
+                    "test": false
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2018",
+                    "kind": [
+                        "bench"
+                    ],
+                    "name": "trie_benches",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/radix_trie-0.2.1/benches/trie_benches.rs",
+                    "test": false
+                }
+            ],
+            "version": "0.2.1"
         },
         {
             "authors": [
@@ -5254,7 +41178,7 @@
                 ]
             },
             "homepage": "https://rust-random.github.io/book",
-            "id": "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#rand@0.8.5",
             "keywords": [
                 "random",
                 "rng"
@@ -5388,7 +41312,7 @@
                 ]
             },
             "homepage": "https://rust-random.github.io/book",
-            "id": "rand_chacha 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#rand_chacha@0.3.1",
             "keywords": [
                 "random",
                 "rng",
@@ -5482,7 +41406,7 @@
                 ]
             },
             "homepage": "https://rust-random.github.io/book",
-            "id": "rand_core 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#rand_core@0.6.4",
             "keywords": [
                 "random",
                 "rng"
@@ -5490,7 +41414,7 @@
             "license": "MIT OR Apache-2.0",
             "license_file": null,
             "links": null,
-            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.3/Cargo.toml",
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.4/Cargo.toml",
             "metadata": {
                 "docs": {
                     "rs": {
@@ -5523,11 +41447,14046 @@
                         "lib"
                     ],
                     "name": "rand_core",
-                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.3/src/lib.rs",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/rand_core-0.6.4/src/lib.rs",
                     "test": true
                 }
             ],
-            "version": "0.6.3"
+            "version": "0.6.4"
+        },
+        {
+            "authors": [
+                "Jeremy Soller <jackpot51@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "bitflags",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rustc-std-workspace-core",
+                    "optional": true,
+                    "registry": null,
+                    "rename": "core",
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Rust library to access raw Redox system calls",
+            "documentation": "https://docs.rs/redox_syscall",
+            "edition": "2018",
+            "features": {
+                "core": [
+                    "dep:core"
+                ],
+                "rustc-dep-of-std": [
+                    "core",
+                    "bitflags/rustc-dep-of-std"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#redox_syscall@0.4.1",
+            "keywords": [],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/redox_syscall-0.4.1/Cargo.toml",
+            "metadata": null,
+            "name": "redox_syscall",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://gitlab.redox-os.org/redox-os/syscall",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2018",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "syscall",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/redox_syscall-0.4.1/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.1"
+        },
+        {
+            "authors": [
+                "Jose Narvaez <goyox86@gmail.com>",
+                "Wesley Hershberger <mggmugginsmc@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": null,
+                    "name": "getrandom",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std",
+                        "call"
+                    ],
+                    "kind": null,
+                    "name": "libredox",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "rust-argon2",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "thiserror",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "zeroize_derive"
+                    ],
+                    "kind": null,
+                    "name": "zeroize",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "A Rust library to access Redox users and groups functionality",
+            "documentation": "https://docs.rs/redox_users",
+            "edition": "2021",
+            "features": {
+                "auth": [
+                    "rust-argon2",
+                    "zeroize"
+                ],
+                "default": [
+                    "auth"
+                ],
+                "rust-argon2": [
+                    "dep:rust-argon2"
+                ],
+                "zeroize": [
+                    "dep:zeroize"
+                ]
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#redox_users@0.4.5",
+            "keywords": [
+                "redox",
+                "auth"
+            ],
+            "license": "MIT",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/redox_users-0.4.5/Cargo.toml",
+            "metadata": null,
+            "name": "redox_users",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://gitlab.redox-os.org/redox-os/users",
+            "rust_version": null,
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "redox_users",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/redox_users-0.4.5/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.5"
+        },
+        {
+            "authors": [
+                "David Tolnay <dtolnay@gmail.com>"
+            ],
+            "categories": [
+                "rust-patterns",
+                "no-std",
+                "no-std::no-alloc"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "ref-cast-impl",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "=1.0.22",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "ref-cast-test-suite",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "rustversion",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.13",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "diff"
+                    ],
+                    "kind": "dev",
+                    "name": "trybuild",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.81",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Safely cast &T to &U where the struct U contains a single field of type T.",
+            "documentation": "https://docs.rs/ref-cast",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ref-cast@1.0.22",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "ref-cast",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/dtolnay/ref-cast",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "ref_cast",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_trivial",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/tests/test_trivial.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "compiletest",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/tests/compiletest.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "test_custom",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/tests/test_custom.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "custom-build"
+                    ],
+                    "name": "build-script-build",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-1.0.22/build.rs",
+                    "test": false
+                }
+            ],
+            "version": "1.0.22"
+        },
+        {
+            "authors": [
+                "David Tolnay <dtolnay@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "proc-macro2",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.74",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "quote",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.35",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "syn",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.0.46",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "ref-cast",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Derive implementation for ref_cast::RefCast.",
+            "documentation": "https://docs.rs/ref-cast",
+            "edition": "2021",
+            "features": {},
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#ref-cast-impl@1.0.22",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-impl-1.0.22/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "rustdoc-args": [
+                            "--generate-link-to-definition"
+                        ],
+                        "targets": [
+                            "x86_64-unknown-linux-gnu"
+                        ]
+                    }
+                }
+            },
+            "name": "ref-cast-impl",
+            "publish": null,
+            "readme": null,
+            "repository": "https://github.com/dtolnay/ref-cast",
+            "rust_version": "1.56",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "proc-macro"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "proc-macro"
+                    ],
+                    "name": "ref_cast_impl",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/ref-cast-impl-1.0.22/src/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.0.22"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers",
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [
+                "text-processing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "aho-corasick",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [
+                        "alloc",
+                        "syntax",
+                        "meta",
+                        "nfa-pikevm"
+                    ],
+                    "kind": null,
+                    "name": "regex-automata",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.4",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "regex-syntax",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "anyhow",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.69",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "atty",
+                        "humantime",
+                        "termcolor"
+                    ],
+                    "kind": "dev",
+                    "name": "env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "once_cell",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.17.1",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "regex-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n",
+            "documentation": "https://docs.rs/regex",
+            "edition": "2021",
+            "features": {
+                "default": [
+                    "std",
+                    "perf",
+                    "unicode",
+                    "regex-syntax/default"
+                ],
+                "logging": [
+                    "aho-corasick?/logging",
+                    "memchr?/logging",
+                    "regex-automata/logging"
+                ],
+                "pattern": [],
+                "perf": [
+                    "perf-cache",
+                    "perf-dfa",
+                    "perf-onepass",
+                    "perf-backtrack",
+                    "perf-inline",
+                    "perf-literal"
+                ],
+                "perf-backtrack": [
+                    "regex-automata/nfa-backtrack"
+                ],
+                "perf-cache": [],
+                "perf-dfa": [
+                    "regex-automata/hybrid"
+                ],
+                "perf-dfa-full": [
+                    "regex-automata/dfa-build",
+                    "regex-automata/dfa-search"
+                ],
+                "perf-inline": [
+                    "regex-automata/perf-inline"
+                ],
+                "perf-literal": [
+                    "dep:aho-corasick",
+                    "dep:memchr",
+                    "regex-automata/perf-literal"
+                ],
+                "perf-onepass": [
+                    "regex-automata/dfa-onepass"
+                ],
+                "std": [
+                    "aho-corasick?/std",
+                    "memchr?/std",
+                    "regex-automata/std",
+                    "regex-syntax/std"
+                ],
+                "unicode": [
+                    "unicode-age",
+                    "unicode-bool",
+                    "unicode-case",
+                    "unicode-gencat",
+                    "unicode-perl",
+                    "unicode-script",
+                    "unicode-segment",
+                    "regex-automata/unicode",
+                    "regex-syntax/unicode"
+                ],
+                "unicode-age": [
+                    "regex-automata/unicode-age",
+                    "regex-syntax/unicode-age"
+                ],
+                "unicode-bool": [
+                    "regex-automata/unicode-bool",
+                    "regex-syntax/unicode-bool"
+                ],
+                "unicode-case": [
+                    "regex-automata/unicode-case",
+                    "regex-syntax/unicode-case"
+                ],
+                "unicode-gencat": [
+                    "regex-automata/unicode-gencat",
+                    "regex-syntax/unicode-gencat"
+                ],
+                "unicode-perl": [
+                    "regex-automata/unicode-perl",
+                    "regex-automata/unicode-word-boundary",
+                    "regex-syntax/unicode-perl"
+                ],
+                "unicode-script": [
+                    "regex-automata/unicode-script",
+                    "regex-syntax/unicode-script"
+                ],
+                "unicode-segment": [
+                    "regex-automata/unicode-segment",
+                    "regex-syntax/unicode-segment"
+                ],
+                "unstable": [
+                    "pattern"
+                ],
+                "use_std": [
+                    "std"
+                ]
+            },
+            "homepage": "https://github.com/rust-lang/regex",
+            "id": "registry+https://github.com/rust-lang/crates.io-index#regex@1.10.4",
+            "keywords": [],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-1.10.4/Cargo.toml",
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all-features": true,
+                        "rustdoc-args": [
+                            "--cfg",
+                            "docsrs"
+                        ]
+                    }
+                }
+            },
+            "name": "regex",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/regex",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "regex",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-1.10.4/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-1.10.4/tests/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "1.10.4"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers",
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [
+                "text-processing"
+            ],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "aho-corasick",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "log",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.4.14",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "memchr",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^2.6.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": null,
+                    "name": "regex-syntax",
+                    "optional": true,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.8.2",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "anyhow",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.69",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "std"
+                    ],
+                    "kind": "dev",
+                    "name": "bstr",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.3.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "doc-comment",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.3.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                },
+                {
+                    "features": [
+                        "atty",
+                        "humantime",
+                        "termcolor"
+                    ],
+                    "kind": "dev",
+                    "name": "env_logger",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.9.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "quickcheck",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^1.0.3",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": false
+                },
+                {
+                    "features": [],
+                    "kind": "dev",
+                    "name": "regex-test",
+                    "optional": false,
+                    "registry": null,
+                    "rename": null,
+                    "req": "^0.1.0",
+                    "source": "registry+https://github.com/rust-lang/crates.io-index",
+                    "target": null,
+                    "uses_default_features": true
+                }
+            ],
+            "description": "Automata construction and matching using regular expressions.",
+            "documentation": "https://docs.rs/regex-automata",
+            "edition": "2021",
+            "features": {
+                "alloc": [],
+                "default": [
+                    "std",
+                    "syntax",
+                    "perf",
+                    "unicode",
+                    "meta",
+                    "nfa",
+                    "dfa",
+                    "hybrid"
+                ],
+                "dfa": [
+                    "dfa-build",
+                    "dfa-search",
+                    "dfa-onepass"
+                ],
+                "dfa-build": [
+                    "nfa-thompson",
+                    "dfa-search"
+                ],
+                "dfa-onepass": [
+                    "nfa-thompson"
+                ],
+                "dfa-search": [],
+                "hybrid": [
+                    "alloc",
+                    "nfa-thompson"
+                ],
+                "internal-instrument": [
+                    "internal-instrument-pikevm"
+                ],
+                "internal-instrument-pikevm": [
+                    "logging",
+                    "std"
+                ],
+                "logging": [
+                    "dep:log",
+                    "aho-corasick?/logging",
+                    "memchr?/logging"
+                ],
+                "meta": [
+                    "syntax",
+                    "nfa-pikevm"
+                ],
+                "nfa": [
+                    "nfa-thompson",
+                    "nfa-pikevm",
+                    "nfa-backtrack"
+                ],
+                "nfa-backtrack": [
+                    "nfa-thompson"
+                ],
+                "nfa-pikevm": [
+                    "nfa-thompson"
+                ],
+                "nfa-thompson": [
+                    "alloc"
+                ],
+                "perf": [
+                    "perf-inline",
+                    "perf-literal"
+                ],
+                "perf-inline": [],
+                "perf-literal": [
+                    "perf-literal-substring",
+                    "perf-literal-multisubstring"
+                ],
+                "perf-literal-multisubstring": [
+                    "std",
+                    "dep:aho-corasick"
+                ],
+                "perf-literal-substring": [
+                    "aho-corasick?/perf-literal",
+                    "dep:memchr"
+                ],
+                "std": [
+                    "regex-syntax?/std",
+                    "memchr?/std",
+                    "aho-corasick?/std",
+                    "alloc"
+                ],
+                "syntax": [
+                    "dep:regex-syntax",
+                    "alloc"
+                ],
+                "unicode": [
+                    "unicode-age",
+                    "unicode-bool",
+                    "unicode-case",
+                    "unicode-gencat",
+                    "unicode-perl",
+                    "unicode-script",
+                    "unicode-segment",
+                    "unicode-word-boundary",
+                    "regex-syntax?/unicode"
+                ],
+                "unicode-age": [
+                    "regex-syntax?/unicode-age"
+                ],
+                "unicode-bool": [
+                    "regex-syntax?/unicode-bool"
+                ],
+                "unicode-case": [
+                    "regex-syntax?/unicode-case"
+                ],
+                "unicode-gencat": [
+                    "regex-syntax?/unicode-gencat"
+                ],
+                "unicode-perl": [
+                    "regex-syntax?/unicode-perl"
+                ],
+                "unicode-script": [
+                    "regex-syntax?/unicode-script"
+                ],
+                "unicode-segment": [
+                    "regex-syntax?/unicode-segment"
+                ],
+                "unicode-word-boundary": []
+            },
+            "homepage": null,
+            "id": "registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.4.6",
+            "keywords": [
+                "regex",
+                "dfa",
+                "automata",
+                "automaton",
+                "nfa"
+            ],
+            "license": "MIT OR Apache-2.0",
+            "license_file": null,
+            "links": null,
+            "manifest_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.6/Cargo.toml",
+            "metadata": null,
+            "name": "regex-automata",
+            "publish": null,
+            "readme": "README.md",
+            "repository": "https://github.com/rust-lang/regex/tree/master/regex-automata",
+            "rust_version": "1.65",
+            "source": "registry+https://github.com/rust-lang/crates.io-index",
+            "targets": [
+                {
+                    "crate_types": [
+                        "lib"
+                    ],
+                    "doc": true,
+                    "doctest": true,
+                    "edition": "2021",
+                    "kind": [
+                        "lib"
+                    ],
+                    "name": "regex_automata",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.6/src/lib.rs",
+                    "test": true
+                },
+                {
+                    "crate_types": [
+                        "bin"
+                    ],
+                    "doc": false,
+                    "doctest": false,
+                    "edition": "2021",
+                    "kind": [
+                        "test"
+                    ],
+                    "name": "integration",
+                    "src_path": "{CARGO_HOME}/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.6/tests/lib.rs",
+                    "test": true
+                }
+            ],
+            "version": "0.4.6"
+        },
+        {
+            "authors": [
+                "The Rust Project Developers",
+                "Andrew Gallant <jamslam@gmail.com>"
+            ],
+            "categories": [],
+            "default_run": null,
+            "dependencies": [
+                {
+                    "features": [
+                        "derive"
+                    ],
+                    "kind": null,
+                    "name": "arbitrary",
+                    "optional": true,
+