diff --git a/MODULE.bazel b/MODULE.bazel index 561cade7da03f..10b6b459c103e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -145,26 +145,19 @@ crate.annotation( ) crate.annotation( crate = "cryptoki", - patch_args = ["-p2"], - patches = [ - "@lowrisc_opentitan//third_party/rust/patches:cryptoki-vendor-defined-mechanism-type.patch", - "@lowrisc_opentitan//third_party/rust/patches:cryptoki-profile.patch", - ], repositories = ["crate_index"], ) crate.annotation( additive_build_file_content = """ filegroup( - name = "binding_srcs", - srcs = [ - "src/lib.rs", - "src/bindings/x86_64-unknown-linux-gnu.rs", - ], + name = "cryptoki-sys-binding-srcs", + srcs = glob(["src/bindings/*.rs"]), + visibility = ["//visibility:public"], ) """, crate = "cryptoki-sys", extra_aliased_targets = { - "cryptoki-sys-binding-srcs": "binding_srcs", + "cryptoki-sys-binding-srcs": "cryptoki-sys-binding-srcs", }, repositories = ["crate_index"], ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index b9951f181ec1e..73c677999624d 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -6302,14 +6302,14 @@ "@@rules_rust+//crate_universe:extension.bzl%crate": { "general": { "bzlTransitiveDigest": "+vQ3ysy3luy+pewmwYh/aYCLTj9TKU7tzRunKUCIanU=", - "usagesDigest": "LDrdeyD7KUQDI/3lRf56mPIKTGSREOEcYCxVnHGzVbE=", + "usagesDigest": "khtcl2CcL1x8U4NEsb5ngIwQjQ67H4pdiChIG61bWUE=", "recordedFileInputs": { "@@+tock+elf2tab//Cargo.lock": "e16f9727336cfe996bfec5b8ddbc0a34bc4042e4c62a373176d02337fefeb3c3", "@@+tock+elf2tab//Cargo.toml": "b3d5d0abcf067b73e0bbfed145dcf6c94b235100d14a6d5bfaed59ce585e0a54", "@@//third_party/mdbook/Cargo.lock": "016b012024cd9dce5be7c958215a9e09e13f005f42f66b199adeebf8f711a1b6", "@@//third_party/mdbook/Cargo.toml": "334d3b905cce5adf4db0c4dbccd00adf5e99e68af9cdda0e40bc9d970a882eec", - "@@//third_party/rust/Cargo.lock": "24a6e6682417c084a223f189a2b142f7f562e02d0203f205b14eea0f5845fc8e", - "@@//third_party/rust/Cargo.toml": "d99c3b75358a986b2d7655a2c29bebf8ed99ea9ab425a47481d756124fbf37df", + "@@//third_party/rust/Cargo.lock": "e6d3f308be12a5d2b3263ec1b3842752f3b61be381ea4cb9c71c140aff8389e1", + "@@//third_party/rust/Cargo.toml": "33879e3104f6ea75406922f4b4712c7bd137698d77ec5c24ca7a8d3b443f45cc", "@@//third_party/tock/Cargo.lock": "b5a7a833ae205f1e3697a510e97e3185b44b195d7a22879b4669bff95febd5c8", "@@//third_party/tock/Cargo.toml": "5a939bd934aef4775b65a82e678f1180ec00aa78cf214f6052cc82353c975cc4" }, @@ -6328,9 +6328,9 @@ "repoRuleId": "@@rules_rust+//crate_universe:extensions.bzl%_generate_repo", "attributes": { "contents": { - "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"aes-0.8.4\",\n actual = \"@crate_index__aes-0.8.4//:aes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aes\",\n actual = \"@crate_index__aes-0.8.4//:aes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anstyle-1.0.11\",\n actual = \"@crate_index__anstyle-1.0.11//:anstyle\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anstyle\",\n actual = \"@crate_index__anstyle-1.0.11//:anstyle\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow-1.0.98\",\n actual = \"@crate_index__anyhow-1.0.98//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow\",\n actual = \"@crate_index__anyhow-1.0.98//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec-0.7.6\",\n actual = \"@crate_index__arrayvec-0.7.6//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec\",\n actual = \"@crate_index__arrayvec-0.7.6//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"asn1-0.22.0\",\n actual = \"@crate_index__asn1-0.22.0//:asn1\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"asn1\",\n actual = \"@crate_index__asn1-0.22.0//:asn1\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64-0.21.7\",\n actual = \"@crate_index__base64-0.21.7//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64\",\n actual = \"@crate_index__base64-0.21.7//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64ct-1.8.0\",\n actual = \"@crate_index__base64ct-1.8.0//:base64ct\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64ct\",\n actual = \"@crate_index__base64ct-1.8.0//:base64ct\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bitflags-2.9.1\",\n actual = \"@crate_index__bitflags-2.9.1//:bitflags\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bitflags\",\n actual = \"@crate_index__bitflags-2.9.1//:bitflags\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"byteorder-1.5.0\",\n actual = \"@crate_index__byteorder-1.5.0//:byteorder\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"byteorder\",\n actual = \"@crate_index__byteorder-1.5.0//:byteorder\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono-0.4.41\",\n actual = \"@crate_index__chrono-0.4.41//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono\",\n actual = \"@crate_index__chrono-0.4.41//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ciborium-0.2.2\",\n actual = \"@crate_index__ciborium-0.2.2//:ciborium\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ciborium\",\n actual = \"@crate_index__ciborium-0.2.2//:ciborium\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap-4.5.48\",\n actual = \"@crate_index__clap-4.5.48//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap\",\n actual = \"@crate_index__clap-4.5.48//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"const-oid-0.9.6\",\n actual = \"@crate_index__const-oid-0.9.6//:const_oid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"const-oid\",\n actual = \"@crate_index__const-oid-0.9.6//:const_oid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"coset-0.3.8\",\n actual = \"@crate_index__coset-0.3.8//:coset\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"coset\",\n actual = \"@crate_index__coset-0.3.8//:coset\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"crc-3.3.0\",\n actual = \"@crate_index__crc-3.3.0//:crc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"crc\",\n actual = \"@crate_index__crc-3.3.0//:crc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-0.10.0\",\n actual = \"@crate_index__cryptoki-0.10.0//:cryptoki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki\",\n actual = \"@crate_index__cryptoki-0.10.0//:cryptoki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys-0.4.0\",\n actual = \"@crate_index__cryptoki-sys-0.4.0//:cryptoki_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys\",\n actual = \"@crate_index__cryptoki-sys-0.4.0//:cryptoki_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys-binding-srcs\",\n actual = \"@crate_index__cryptoki-sys-0.4.0//:binding_srcs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"der-0.7.10\",\n actual = \"@crate_index__der-0.7.10//:der\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"der\",\n actual = \"@crate_index__der-0.7.10//:der\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"deser-hjson-2.2.4\",\n actual = \"@crate_index__deser-hjson-2.2.4//:deser_hjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"deser-hjson\",\n actual = \"@crate_index__deser-hjson-2.2.4//:deser_hjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"directories-6.0.0\",\n actual = \"@crate_index__directories-6.0.0//:directories\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"directories\",\n actual = \"@crate_index__directories-6.0.0//:directories\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ecdsa-0.16.9\",\n actual = \"@crate_index__ecdsa-0.16.9//:ecdsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ecdsa\",\n actual = \"@crate_index__ecdsa-0.16.9//:ecdsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"elliptic-curve-0.13.8\",\n actual = \"@crate_index__elliptic-curve-0.13.8//:elliptic_curve\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"elliptic-curve\",\n actual = \"@crate_index__elliptic-curve-0.13.8//:elliptic_curve\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embedded-hal-1.0.0\",\n actual = \"@crate_index__embedded-hal-1.0.0//:embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embedded-hal\",\n actual = \"@crate_index__embedded-hal-1.0.0//:embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger-0.11.8\",\n actual = \"@crate_index__env_logger-0.11.8//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger\",\n actual = \"@crate_index__env_logger-0.11.8//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"erased-serde-0.4.6\",\n actual = \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"erased-serde\",\n actual = \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foreign-types-0.3.2\",\n actual = \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foreign-types\",\n actual = \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-0.1.3\",\n actual = \"@crate_index__ftdi-0.1.3//:ftdi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi\",\n actual = \"@crate_index__ftdi-0.1.3//:ftdi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-embedded-hal-0.23.2\",\n actual = \"@crate_index__ftdi-embedded-hal-0.23.2//:ftdi_embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-embedded-hal\",\n actual = \"@crate_index__ftdi-embedded-hal-0.23.2//:ftdi_embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-mpsse-0.1.2\",\n actual = \"@crate_index__ftdi-mpsse-0.1.2//:ftdi_mpsse\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-mpsse\",\n actual = \"@crate_index__ftdi-mpsse-0.1.2//:ftdi_mpsse\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"heck-0.5.0\",\n actual = \"@crate_index__heck-0.5.0//:heck\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"heck\",\n actual = \"@crate_index__heck-0.5.0//:heck\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hex-0.4.3\",\n actual = \"@crate_index__hex-0.4.3//:hex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hex\",\n actual = \"@crate_index__hex-0.4.3//:hex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hmac-0.12.1\",\n actual = \"@crate_index__hmac-0.12.1//:hmac\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hmac\",\n actual = \"@crate_index__hmac-0.12.1//:hmac\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-2.2.0\",\n actual = \"@crate_index__humantime-2.2.0//:humantime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime\",\n actual = \"@crate_index__humantime-2.2.0//:humantime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-serde-1.1.1\",\n actual = \"@crate_index__humantime-serde-1.1.1//:humantime_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-serde\",\n actual = \"@crate_index__humantime-serde-1.1.1//:humantime_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap-2.10.0\",\n actual = \"@crate_index__indexmap-2.10.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap\",\n actual = \"@crate_index__indexmap-2.10.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-0.18.0\",\n actual = \"@crate_index__indicatif-0.18.0//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif\",\n actual = \"@crate_index__indicatif-0.18.0//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indoc-2.0.6\",\n actual = \"@crate_index__indoc-2.0.6//:indoc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indoc\",\n actual = \"@crate_index__indoc-2.0.6//:indoc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"inventory-0.3.20\",\n actual = \"@crate_index__inventory-0.3.20//:inventory\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"inventory\",\n actual = \"@crate_index__inventory-0.3.20//:inventory\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools-0.14.0\",\n actual = \"@crate_index__itertools-0.14.0//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools\",\n actual = \"@crate_index__itertools-0.14.0//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libloading-0.8.8\",\n actual = \"@crate_index__libloading-0.8.8//:libloading\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libloading\",\n actual = \"@crate_index__libloading-0.8.8//:libloading\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log-0.4.27\",\n actual = \"@crate_index__log-0.4.27//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log\",\n actual = \"@crate_index__log-0.4.27//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr-2.7.5\",\n actual = \"@crate_index__memchr-2.7.5//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr\",\n actual = \"@crate_index__memchr-2.7.5//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-bigint-dig-0.8.4\",\n actual = \"@crate_index__num-bigint-dig-0.8.4//:num_bigint_dig\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-bigint-dig\",\n actual = \"@crate_index__num-bigint-dig-0.8.4//:num_bigint_dig\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-traits-0.2.19\",\n actual = \"@crate_index__num-traits-0.2.19//:num_traits\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-traits\",\n actual = \"@crate_index__num-traits-0.2.19//:num_traits\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"object-0.36.7\",\n actual = \"@crate_index__object-0.36.7//:object\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"object\",\n actual = \"@crate_index__object-0.36.7//:object\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"once_cell-1.21.3\",\n actual = \"@crate_index__once_cell-1.21.3//:once_cell\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"once_cell\",\n actual = \"@crate_index__once_cell-1.21.3//:once_cell\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-0.10.73\",\n actual = \"@crate_index__openssl-0.10.73//:openssl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl\",\n actual = \"@crate_index__openssl-0.10.73//:openssl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-sys-0.9.109\",\n actual = \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-sys\",\n actual = \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p256-0.13.2\",\n actual = \"@crate_index__p256-0.13.2//:p256\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p256\",\n actual = \"@crate_index__p256-0.13.2//:p256\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p384-0.13.1\",\n actual = \"@crate_index__p384-0.13.1//:p384\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p384\",\n actual = \"@crate_index__p384-0.13.1//:p384\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste-1.0.15\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pem-rfc7468-0.7.0\",\n actual = \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pem-rfc7468\",\n actual = \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest-2.8.1\",\n actual = \"@crate_index__pest-2.8.1//:pest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest\",\n actual = \"@crate_index__pest-2.8.1//:pest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest_derive-2.8.1\",\n actual = \"@crate_index__pest_derive-2.8.1//:pest_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest_derive\",\n actual = \"@crate_index__pest_derive-2.8.1//:pest_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2-1.0.95\",\n actual = \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2\",\n actual = \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote-1.0.40\",\n actual = \"@crate_index__quote-1.0.40//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote\",\n actual = \"@crate_index__quote-1.0.40//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand-0.8.5\",\n actual = \"@crate_index__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand\",\n actual = \"@crate_index__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha-0.3.1\",\n actual = \"@crate_index__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha\",\n actual = \"@crate_index__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex-1.11.1\",\n actual = \"@crate_index__regex-1.11.1//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex\",\n actual = \"@crate_index__regex-1.11.1//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest-0.12.24\",\n actual = \"@crate_index__reqwest-0.12.24//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest\",\n actual = \"@crate_index__reqwest-0.12.24//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rsa-0.9.8\",\n actual = \"@crate_index__rsa-0.9.8//:rsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rsa\",\n actual = \"@crate_index__rsa-0.9.8//:rsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rusb-0.9.4\",\n actual = \"@crate_index__rusb-0.9.4//:rusb\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rusb\",\n actual = \"@crate_index__rusb-0.9.4//:rusb\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustix-1.0.8\",\n actual = \"@crate_index__rustix-1.0.8//:rustix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustix\",\n actual = \"@crate_index__rustix-1.0.8//:rustix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard-1.2.0\",\n actual = \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard\",\n actual = \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde-1.0.219\",\n actual = \"@crate_index__serde-1.0.219//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde\",\n actual = \"@crate_index__serde-1.0.219//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_bytes-0.11.17\",\n actual = \"@crate_index__serde_bytes-0.11.17//:serde_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_bytes\",\n actual = \"@crate_index__serde_bytes-0.11.17//:serde_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.142\",\n actual = \"@crate_index__serde_json-1.0.142//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crate_index__serde_json-1.0.142//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_with-3.14.0\",\n actual = \"@crate_index__serde_with-3.14.0//:serde_with\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_with\",\n actual = \"@crate_index__serde_with-3.14.0//:serde_with\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serialport-4.7.2\",\n actual = \"@crate_index__serialport-4.7.2//:serialport\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serialport\",\n actual = \"@crate_index__serialport-4.7.2//:serialport\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2-0.10.9\",\n actual = \"@crate_index__sha2-0.10.9//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2\",\n actual = \"@crate_index__sha2-0.10.9//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha3-0.10.8\",\n actual = \"@crate_index__sha3-0.10.8//:sha3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha3\",\n actual = \"@crate_index__sha3-0.10.8//:sha3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"shellwords-1.1.0\",\n actual = \"@crate_index__shellwords-1.1.0//:shellwords\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"shellwords\",\n actual = \"@crate_index__shellwords-1.1.0//:shellwords\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum-0.27.2\",\n actual = \"@crate_index__strum-0.27.2//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum\",\n actual = \"@crate_index__strum-0.27.2//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn-2.0.104\",\n actual = \"@crate_index__syn-2.0.104//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn\",\n actual = \"@crate_index__syn-2.0.104//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile-3.20.0\",\n actual = \"@crate_index__tempfile-3.20.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile\",\n actual = \"@crate_index__tempfile-3.20.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror-2.0.12\",\n actual = \"@crate_index__thiserror-2.0.12//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror\",\n actual = \"@crate_index__thiserror-2.0.12//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tiny-keccak-2.0.2\",\n actual = \"@crate_index__tiny-keccak-2.0.2//:tiny_keccak\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tiny-keccak\",\n actual = \"@crate_index__tiny-keccak-2.0.2//:tiny_keccak\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-1.47.1\",\n actual = \"@crate_index__tokio-1.47.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio\",\n actual = \"@crate_index__tokio-1.47.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"typetag-0.2.20\",\n actual = \"@crate_index__typetag-0.2.20//:typetag\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"typetag\",\n actual = \"@crate_index__typetag-0.2.20//:typetag\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zerocopy-0.8.26\",\n actual = \"@crate_index__zerocopy-0.8.26//:zerocopy\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zerocopy\",\n actual = \"@crate_index__zerocopy-0.8.26//:zerocopy\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zeroize-1.8.1\",\n actual = \"@crate_index__zeroize-1.8.1//:zeroize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zeroize\",\n actual = \"@crate_index__zeroize-1.8.1//:zeroize\",\n tags = [\"manual\"],\n)\n", + "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"aes-0.8.4\",\n actual = \"@crate_index__aes-0.8.4//:aes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"aes\",\n actual = \"@crate_index__aes-0.8.4//:aes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anstyle-1.0.11\",\n actual = \"@crate_index__anstyle-1.0.11//:anstyle\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anstyle\",\n actual = \"@crate_index__anstyle-1.0.11//:anstyle\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow-1.0.98\",\n actual = \"@crate_index__anyhow-1.0.98//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"anyhow\",\n actual = \"@crate_index__anyhow-1.0.98//:anyhow\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec-0.7.6\",\n actual = \"@crate_index__arrayvec-0.7.6//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"arrayvec\",\n actual = \"@crate_index__arrayvec-0.7.6//:arrayvec\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"asn1-0.22.0\",\n actual = \"@crate_index__asn1-0.22.0//:asn1\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"asn1\",\n actual = \"@crate_index__asn1-0.22.0//:asn1\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64-0.21.7\",\n actual = \"@crate_index__base64-0.21.7//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64\",\n actual = \"@crate_index__base64-0.21.7//:base64\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64ct-1.8.0\",\n actual = \"@crate_index__base64ct-1.8.0//:base64ct\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"base64ct\",\n actual = \"@crate_index__base64ct-1.8.0//:base64ct\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bitflags-2.10.0\",\n actual = \"@crate_index__bitflags-2.10.0//:bitflags\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"bitflags\",\n actual = \"@crate_index__bitflags-2.10.0//:bitflags\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"byteorder-1.5.0\",\n actual = \"@crate_index__byteorder-1.5.0//:byteorder\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"byteorder\",\n actual = \"@crate_index__byteorder-1.5.0//:byteorder\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono-0.4.41\",\n actual = \"@crate_index__chrono-0.4.41//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"chrono\",\n actual = \"@crate_index__chrono-0.4.41//:chrono\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ciborium-0.2.2\",\n actual = \"@crate_index__ciborium-0.2.2//:ciborium\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ciborium\",\n actual = \"@crate_index__ciborium-0.2.2//:ciborium\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap-4.5.48\",\n actual = \"@crate_index__clap-4.5.48//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"clap\",\n actual = \"@crate_index__clap-4.5.48//:clap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"const-oid-0.9.6\",\n actual = \"@crate_index__const-oid-0.9.6//:const_oid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"const-oid\",\n actual = \"@crate_index__const-oid-0.9.6//:const_oid\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"coset-0.3.8\",\n actual = \"@crate_index__coset-0.3.8//:coset\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"coset\",\n actual = \"@crate_index__coset-0.3.8//:coset\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"crc-3.3.0\",\n actual = \"@crate_index__crc-3.3.0//:crc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"crc\",\n actual = \"@crate_index__crc-3.3.0//:crc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-0.12.0\",\n actual = \"@crate_index__cryptoki-0.12.0//:cryptoki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki\",\n actual = \"@crate_index__cryptoki-0.12.0//:cryptoki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys-0.5.0\",\n actual = \"@crate_index__cryptoki-sys-0.5.0//:cryptoki_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys\",\n actual = \"@crate_index__cryptoki-sys-0.5.0//:cryptoki_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"cryptoki-sys-binding-srcs\",\n actual = \"@crate_index__cryptoki-sys-0.5.0//:cryptoki-sys-binding-srcs\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"der-0.7.10\",\n actual = \"@crate_index__der-0.7.10//:der\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"der\",\n actual = \"@crate_index__der-0.7.10//:der\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"deser-hjson-2.2.4\",\n actual = \"@crate_index__deser-hjson-2.2.4//:deser_hjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"deser-hjson\",\n actual = \"@crate_index__deser-hjson-2.2.4//:deser_hjson\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"directories-6.0.0\",\n actual = \"@crate_index__directories-6.0.0//:directories\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"directories\",\n actual = \"@crate_index__directories-6.0.0//:directories\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ecdsa-0.16.9\",\n actual = \"@crate_index__ecdsa-0.16.9//:ecdsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ecdsa\",\n actual = \"@crate_index__ecdsa-0.16.9//:ecdsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"elliptic-curve-0.13.8\",\n actual = \"@crate_index__elliptic-curve-0.13.8//:elliptic_curve\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"elliptic-curve\",\n actual = \"@crate_index__elliptic-curve-0.13.8//:elliptic_curve\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embedded-hal-1.0.0\",\n actual = \"@crate_index__embedded-hal-1.0.0//:embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"embedded-hal\",\n actual = \"@crate_index__embedded-hal-1.0.0//:embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger-0.11.8\",\n actual = \"@crate_index__env_logger-0.11.8//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"env_logger\",\n actual = \"@crate_index__env_logger-0.11.8//:env_logger\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"erased-serde-0.4.6\",\n actual = \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"erased-serde\",\n actual = \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foreign-types-0.3.2\",\n actual = \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"foreign-types\",\n actual = \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-0.1.3\",\n actual = \"@crate_index__ftdi-0.1.3//:ftdi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi\",\n actual = \"@crate_index__ftdi-0.1.3//:ftdi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-embedded-hal-0.23.2\",\n actual = \"@crate_index__ftdi-embedded-hal-0.23.2//:ftdi_embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-embedded-hal\",\n actual = \"@crate_index__ftdi-embedded-hal-0.23.2//:ftdi_embedded_hal\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-mpsse-0.1.2\",\n actual = \"@crate_index__ftdi-mpsse-0.1.2//:ftdi_mpsse\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ftdi-mpsse\",\n actual = \"@crate_index__ftdi-mpsse-0.1.2//:ftdi_mpsse\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"heck-0.5.0\",\n actual = \"@crate_index__heck-0.5.0//:heck\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"heck\",\n actual = \"@crate_index__heck-0.5.0//:heck\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hex-0.4.3\",\n actual = \"@crate_index__hex-0.4.3//:hex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hex\",\n actual = \"@crate_index__hex-0.4.3//:hex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hmac-0.12.1\",\n actual = \"@crate_index__hmac-0.12.1//:hmac\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"hmac\",\n actual = \"@crate_index__hmac-0.12.1//:hmac\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-2.2.0\",\n actual = \"@crate_index__humantime-2.2.0//:humantime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime\",\n actual = \"@crate_index__humantime-2.2.0//:humantime\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-serde-1.1.1\",\n actual = \"@crate_index__humantime-serde-1.1.1//:humantime_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"humantime-serde\",\n actual = \"@crate_index__humantime-serde-1.1.1//:humantime_serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap-2.10.0\",\n actual = \"@crate_index__indexmap-2.10.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indexmap\",\n actual = \"@crate_index__indexmap-2.10.0//:indexmap\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif-0.18.0\",\n actual = \"@crate_index__indicatif-0.18.0//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indicatif\",\n actual = \"@crate_index__indicatif-0.18.0//:indicatif\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indoc-2.0.6\",\n actual = \"@crate_index__indoc-2.0.6//:indoc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"indoc\",\n actual = \"@crate_index__indoc-2.0.6//:indoc\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"inventory-0.3.20\",\n actual = \"@crate_index__inventory-0.3.20//:inventory\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"inventory\",\n actual = \"@crate_index__inventory-0.3.20//:inventory\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools-0.14.0\",\n actual = \"@crate_index__itertools-0.14.0//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"itertools\",\n actual = \"@crate_index__itertools-0.14.0//:itertools\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libloading-0.8.9\",\n actual = \"@crate_index__libloading-0.8.9//:libloading\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"libloading\",\n actual = \"@crate_index__libloading-0.8.9//:libloading\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log-0.4.29\",\n actual = \"@crate_index__log-0.4.29//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"log\",\n actual = \"@crate_index__log-0.4.29//:log\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr-2.7.5\",\n actual = \"@crate_index__memchr-2.7.5//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"memchr\",\n actual = \"@crate_index__memchr-2.7.5//:memchr\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ml-dsa-0.0.4\",\n actual = \"@crate_index__ml-dsa-0.0.4//:ml_dsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ml-dsa\",\n actual = \"@crate_index__ml-dsa-0.0.4//:ml_dsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-bigint-dig-0.8.4\",\n actual = \"@crate_index__num-bigint-dig-0.8.4//:num_bigint_dig\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-bigint-dig\",\n actual = \"@crate_index__num-bigint-dig-0.8.4//:num_bigint_dig\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-traits-0.2.19\",\n actual = \"@crate_index__num-traits-0.2.19//:num_traits\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"num-traits\",\n actual = \"@crate_index__num-traits-0.2.19//:num_traits\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"object-0.36.7\",\n actual = \"@crate_index__object-0.36.7//:object\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"object\",\n actual = \"@crate_index__object-0.36.7//:object\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"once_cell-1.21.3\",\n actual = \"@crate_index__once_cell-1.21.3//:once_cell\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"once_cell\",\n actual = \"@crate_index__once_cell-1.21.3//:once_cell\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-0.10.73\",\n actual = \"@crate_index__openssl-0.10.73//:openssl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl\",\n actual = \"@crate_index__openssl-0.10.73//:openssl\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-sys-0.9.109\",\n actual = \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"openssl-sys\",\n actual = \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p256-0.13.2\",\n actual = \"@crate_index__p256-0.13.2//:p256\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p256\",\n actual = \"@crate_index__p256-0.13.2//:p256\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p384-0.13.1\",\n actual = \"@crate_index__p384-0.13.1//:p384\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"p384\",\n actual = \"@crate_index__p384-0.13.1//:p384\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste-1.0.15\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"paste\",\n actual = \"@crate_index__paste-1.0.15//:paste\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pem-rfc7468-0.7.0\",\n actual = \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pem-rfc7468\",\n actual = \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest-2.8.1\",\n actual = \"@crate_index__pest-2.8.1//:pest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest\",\n actual = \"@crate_index__pest-2.8.1//:pest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest_derive-2.8.1\",\n actual = \"@crate_index__pest_derive-2.8.1//:pest_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pest_derive\",\n actual = \"@crate_index__pest_derive-2.8.1//:pest_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pkcs8-0.10.2\",\n actual = \"@crate_index__pkcs8-0.10.2//:pkcs8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pkcs8\",\n actual = \"@crate_index__pkcs8-0.10.2//:pkcs8\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2-1.0.95\",\n actual = \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"proc-macro2\",\n actual = \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote-1.0.40\",\n actual = \"@crate_index__quote-1.0.40//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"quote\",\n actual = \"@crate_index__quote-1.0.40//:quote\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand-0.8.5\",\n actual = \"@crate_index__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand\",\n actual = \"@crate_index__rand-0.8.5//:rand\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha-0.3.1\",\n actual = \"@crate_index__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rand_chacha\",\n actual = \"@crate_index__rand_chacha-0.3.1//:rand_chacha\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex-1.11.1\",\n actual = \"@crate_index__regex-1.11.1//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"regex\",\n actual = \"@crate_index__regex-1.11.1//:regex\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest-0.12.24\",\n actual = \"@crate_index__reqwest-0.12.24//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"reqwest\",\n actual = \"@crate_index__reqwest-0.12.24//:reqwest\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rsa-0.9.8\",\n actual = \"@crate_index__rsa-0.9.8//:rsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rsa\",\n actual = \"@crate_index__rsa-0.9.8//:rsa\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rusb-0.9.4\",\n actual = \"@crate_index__rusb-0.9.4//:rusb\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rusb\",\n actual = \"@crate_index__rusb-0.9.4//:rusb\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustix-1.0.8\",\n actual = \"@crate_index__rustix-1.0.8//:rustix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"rustix\",\n actual = \"@crate_index__rustix-1.0.8//:rustix\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard-1.2.0\",\n actual = \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"scopeguard\",\n actual = \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde-1.0.228\",\n actual = \"@crate_index__serde-1.0.228//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde\",\n actual = \"@crate_index__serde-1.0.228//:serde\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_bytes-0.11.17\",\n actual = \"@crate_index__serde_bytes-0.11.17//:serde_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_bytes\",\n actual = \"@crate_index__serde_bytes-0.11.17//:serde_bytes\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.142\",\n actual = \"@crate_index__serde_json-1.0.142//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crate_index__serde_json-1.0.142//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_with-3.14.0\",\n actual = \"@crate_index__serde_with-3.14.0//:serde_with\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_with\",\n actual = \"@crate_index__serde_with-3.14.0//:serde_with\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serialport-4.7.2\",\n actual = \"@crate_index__serialport-4.7.2//:serialport\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serialport\",\n actual = \"@crate_index__serialport-4.7.2//:serialport\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2-0.10.9\",\n actual = \"@crate_index__sha2-0.10.9//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha2\",\n actual = \"@crate_index__sha2-0.10.9//:sha2\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha3-0.10.8\",\n actual = \"@crate_index__sha3-0.10.8//:sha3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"sha3\",\n actual = \"@crate_index__sha3-0.10.8//:sha3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"shellwords-1.1.0\",\n actual = \"@crate_index__shellwords-1.1.0//:shellwords\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"shellwords\",\n actual = \"@crate_index__shellwords-1.1.0//:shellwords\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"signature-2.2.0\",\n actual = \"@crate_index__signature-2.2.0//:signature\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"signature\",\n actual = \"@crate_index__signature-2.2.0//:signature\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"spki-0.7.3\",\n actual = \"@crate_index__spki-0.7.3//:spki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"spki\",\n actual = \"@crate_index__spki-0.7.3//:spki\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum-0.27.2\",\n actual = \"@crate_index__strum-0.27.2//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"strum\",\n actual = \"@crate_index__strum-0.27.2//:strum\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn-2.0.104\",\n actual = \"@crate_index__syn-2.0.104//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"syn\",\n actual = \"@crate_index__syn-2.0.104//:syn\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile-3.20.0\",\n actual = \"@crate_index__tempfile-3.20.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tempfile\",\n actual = \"@crate_index__tempfile-3.20.0//:tempfile\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror-2.0.12\",\n actual = \"@crate_index__thiserror-2.0.12//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"thiserror\",\n actual = \"@crate_index__thiserror-2.0.12//:thiserror\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tiny-keccak-2.0.2\",\n actual = \"@crate_index__tiny-keccak-2.0.2//:tiny_keccak\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tiny-keccak\",\n actual = \"@crate_index__tiny-keccak-2.0.2//:tiny_keccak\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio-1.47.1\",\n actual = \"@crate_index__tokio-1.47.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"tokio\",\n actual = \"@crate_index__tokio-1.47.1//:tokio\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"typetag-0.2.20\",\n actual = \"@crate_index__typetag-0.2.20//:typetag\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"typetag\",\n actual = \"@crate_index__typetag-0.2.20//:typetag\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"x509-cert-0.2.5\",\n actual = \"@crate_index__x509-cert-0.2.5//:x509_cert\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"x509-cert\",\n actual = \"@crate_index__x509-cert-0.2.5//:x509_cert\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zerocopy-0.8.26\",\n actual = \"@crate_index__zerocopy-0.8.26//:zerocopy\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zerocopy\",\n actual = \"@crate_index__zerocopy-0.8.26//:zerocopy\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zeroize-1.8.1\",\n actual = \"@crate_index__zeroize-1.8.1//:zeroize\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"zeroize\",\n actual = \"@crate_index__zeroize-1.8.1//:zeroize\",\n tags = [\"manual\"],\n)\n", "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`. Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n # `ctx.attr.actual` is a list of 1 item due to the transition\n providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n if CcInfo in ctx.attr.actual[0]:\n providers.append(ctx.attr.actual[0][CcInfo])\n return providers\n\ndef _change_compilation_mode(compilation_mode):\n def _change_compilation_mode_impl(_settings, _attr):\n return {\n \"//command_line_option:compilation_mode\": compilation_mode,\n }\n\n return transition(\n implementation = _change_compilation_mode_impl,\n inputs = [],\n outputs = [\n \"//command_line_option:compilation_mode\",\n ],\n )\n\ndef _transition_alias_rule(compilation_mode):\n return rule(\n implementation = _transition_alias_impl,\n provides = COMMON_PROVIDERS,\n attrs = {\n \"actual\": attr.label(\n mandatory = True,\n doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n providers = COMMON_PROVIDERS,\n cfg = _change_compilation_mode(compilation_mode),\n ),\n \"_allowlist_function_transition\": attr.label(\n default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n ),\n },\n doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n", - "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"aes\": Label(\"@crate_index//:aes-0.8.4\"),\n \"anstyle\": Label(\"@crate_index//:anstyle-1.0.11\"),\n \"anyhow\": Label(\"@crate_index//:anyhow-1.0.98\"),\n \"arrayvec\": Label(\"@crate_index//:arrayvec-0.7.6\"),\n \"asn1\": Label(\"@crate_index//:asn1-0.22.0\"),\n \"base64\": Label(\"@crate_index//:base64-0.21.7\"),\n \"base64ct\": Label(\"@crate_index//:base64ct-1.8.0\"),\n \"bitflags\": Label(\"@crate_index//:bitflags-2.9.1\"),\n \"byteorder\": Label(\"@crate_index//:byteorder-1.5.0\"),\n \"chrono\": Label(\"@crate_index//:chrono-0.4.41\"),\n \"ciborium\": Label(\"@crate_index//:ciborium-0.2.2\"),\n \"clap\": Label(\"@crate_index//:clap-4.5.48\"),\n \"const-oid\": Label(\"@crate_index//:const-oid-0.9.6\"),\n \"coset\": Label(\"@crate_index//:coset-0.3.8\"),\n \"crc\": Label(\"@crate_index//:crc-3.3.0\"),\n \"cryptoki\": Label(\"@crate_index//:cryptoki-0.10.0\"),\n \"cryptoki-sys\": Label(\"@crate_index//:cryptoki-sys-0.4.0\"),\n \"der\": Label(\"@crate_index//:der-0.7.10\"),\n \"deser-hjson\": Label(\"@crate_index//:deser-hjson-2.2.4\"),\n \"directories\": Label(\"@crate_index//:directories-6.0.0\"),\n \"ecdsa\": Label(\"@crate_index//:ecdsa-0.16.9\"),\n \"elliptic-curve\": Label(\"@crate_index//:elliptic-curve-0.13.8\"),\n \"embedded-hal\": Label(\"@crate_index//:embedded-hal-1.0.0\"),\n \"env_logger\": Label(\"@crate_index//:env_logger-0.11.8\"),\n \"erased-serde\": Label(\"@crate_index//:erased-serde-0.4.6\"),\n \"foreign-types\": Label(\"@crate_index//:foreign-types-0.3.2\"),\n \"ftdi\": Label(\"@crate_index//:ftdi-0.1.3\"),\n \"ftdi-embedded-hal\": Label(\"@crate_index//:ftdi-embedded-hal-0.23.2\"),\n \"ftdi-mpsse\": Label(\"@crate_index//:ftdi-mpsse-0.1.2\"),\n \"heck\": Label(\"@crate_index//:heck-0.5.0\"),\n \"hex\": Label(\"@crate_index//:hex-0.4.3\"),\n \"hmac\": Label(\"@crate_index//:hmac-0.12.1\"),\n \"humantime\": Label(\"@crate_index//:humantime-2.2.0\"),\n \"humantime-serde\": Label(\"@crate_index//:humantime-serde-1.1.1\"),\n \"indexmap\": Label(\"@crate_index//:indexmap-2.10.0\"),\n \"indicatif\": Label(\"@crate_index//:indicatif-0.18.0\"),\n \"inventory\": Label(\"@crate_index//:inventory-0.3.20\"),\n \"itertools\": Label(\"@crate_index//:itertools-0.14.0\"),\n \"libloading\": Label(\"@crate_index//:libloading-0.8.8\"),\n \"log\": Label(\"@crate_index//:log-0.4.27\"),\n \"memchr\": Label(\"@crate_index//:memchr-2.7.5\"),\n \"num-bigint-dig\": Label(\"@crate_index//:num-bigint-dig-0.8.4\"),\n \"num-traits\": Label(\"@crate_index//:num-traits-0.2.19\"),\n \"object\": Label(\"@crate_index//:object-0.36.7\"),\n \"once_cell\": Label(\"@crate_index//:once_cell-1.21.3\"),\n \"openssl\": Label(\"@crate_index//:openssl-0.10.73\"),\n \"openssl-sys\": Label(\"@crate_index//:openssl-sys-0.9.109\"),\n \"p256\": Label(\"@crate_index//:p256-0.13.2\"),\n \"p384\": Label(\"@crate_index//:p384-0.13.1\"),\n \"pem-rfc7468\": Label(\"@crate_index//:pem-rfc7468-0.7.0\"),\n \"pest\": Label(\"@crate_index//:pest-2.8.1\"),\n \"proc-macro2\": Label(\"@crate_index//:proc-macro2-1.0.95\"),\n \"quote\": Label(\"@crate_index//:quote-1.0.40\"),\n \"rand\": Label(\"@crate_index//:rand-0.8.5\"),\n \"rand_chacha\": Label(\"@crate_index//:rand_chacha-0.3.1\"),\n \"regex\": Label(\"@crate_index//:regex-1.11.1\"),\n \"reqwest\": Label(\"@crate_index//:reqwest-0.12.24\"),\n \"rsa\": Label(\"@crate_index//:rsa-0.9.8\"),\n \"rusb\": Label(\"@crate_index//:rusb-0.9.4\"),\n \"rustix\": Label(\"@crate_index//:rustix-1.0.8\"),\n \"scopeguard\": Label(\"@crate_index//:scopeguard-1.2.0\"),\n \"serde\": Label(\"@crate_index//:serde-1.0.219\"),\n \"serde_bytes\": Label(\"@crate_index//:serde_bytes-0.11.17\"),\n \"serde_json\": Label(\"@crate_index//:serde_json-1.0.142\"),\n \"serde_with\": Label(\"@crate_index//:serde_with-3.14.0\"),\n \"serialport\": Label(\"@crate_index//:serialport-4.7.2\"),\n \"sha2\": Label(\"@crate_index//:sha2-0.10.9\"),\n \"sha3\": Label(\"@crate_index//:sha3-0.10.8\"),\n \"shellwords\": Label(\"@crate_index//:shellwords-1.1.0\"),\n \"strum\": Label(\"@crate_index//:strum-0.27.2\"),\n \"syn\": Label(\"@crate_index//:syn-2.0.104\"),\n \"tempfile\": Label(\"@crate_index//:tempfile-3.20.0\"),\n \"thiserror\": Label(\"@crate_index//:thiserror-2.0.12\"),\n \"tiny-keccak\": Label(\"@crate_index//:tiny-keccak-2.0.2\"),\n \"tokio\": Label(\"@crate_index//:tokio-1.47.1\"),\n \"typetag\": Label(\"@crate_index//:typetag-0.2.20\"),\n \"zerocopy\": Label(\"@crate_index//:zerocopy-0.8.26\"),\n \"zeroize\": Label(\"@crate_index//:zeroize-1.8.1\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"paste\": Label(\"@crate_index//:paste-1.0.15\"),\n \"pest_derive\": Label(\"@crate_index//:pest_derive-2.8.1\"),\n },\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"indoc\": Label(\"@crate_index//:indoc-2.0.6\"),\n },\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-linux-android\": [],\n \"aarch64-pc-windows-gnullvm\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [],\n \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"linux\\\", not(target_env = \\\"musl\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(all(tokio_uring, target_os = \\\"linux\\\"))\": [],\n \"cfg(all(windows, target_env = \\\"msvc\\\"))\": [],\n \"cfg(any())\": [],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"macos\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"ios\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(windows, target_os = \\\"cygwin\\\"))\": [],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\", not(target_vendor = \\\"uwp\\\"))))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(any(target_os = \\\"windows\\\", target_vendor = \\\"apple\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(target_arch = \\\"aarch64\\\")\": [],\n \"cfg(target_arch = \\\"spirv\\\")\": [],\n \"cfg(target_arch = \\\"wasm32\\\")\": [],\n \"cfg(target_family = \\\"wasm\\\")\": [],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [],\n \"cfg(target_os = \\\"haiku\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(target_vendor = \\\"apple\\\")\": [],\n \"cfg(tokio_taskdump)\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(windows)\": [],\n \"cfg(windows_raw_dylib)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crate_index__addr2line-0.24.2\",\n sha256 = \"dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/addr2line/0.24.2/download\"],\n strip_prefix = \"addr2line-0.24.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.addr2line-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__adler2-2.0.1\",\n sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n strip_prefix = \"adler2-2.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.adler2-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aes-0.8.4\",\n sha256 = \"b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aes/0.8.4/download\"],\n strip_prefix = \"aes-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aes-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aho-corasick-1.1.3\",\n sha256 = \"8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.3/download\"],\n strip_prefix = \"aho-corasick-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aho-corasick-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__android-tzdata-0.1.1\",\n sha256 = \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android-tzdata/0.1.1/download\"],\n strip_prefix = \"android-tzdata-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.android-tzdata-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__android_system_properties-0.1.5\",\n sha256 = \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android_system_properties/0.1.5/download\"],\n strip_prefix = \"android_system_properties-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.android_system_properties-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstream-0.6.20\",\n sha256 = \"3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/0.6.20/download\"],\n strip_prefix = \"anstream-0.6.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstream-0.6.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-1.0.11\",\n sha256 = \"862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.11/download\"],\n strip_prefix = \"anstyle-1.0.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-1.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-parse-0.2.7\",\n sha256 = \"4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.7/download\"],\n strip_prefix = \"anstyle-parse-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-parse-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-query-1.1.4\",\n sha256 = \"9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.4/download\"],\n strip_prefix = \"anstyle-query-1.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-query-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-wincon-3.0.10\",\n sha256 = \"3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.10/download\"],\n strip_prefix = \"anstyle-wincon-3.0.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-wincon-3.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anyhow-1.0.98\",\n sha256 = \"e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.98/download\"],\n strip_prefix = \"anyhow-1.0.98\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anyhow-1.0.98.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__arrayvec-0.7.6\",\n sha256 = \"7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.6/download\"],\n strip_prefix = \"arrayvec-0.7.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.arrayvec-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__asn1-0.22.0\",\n sha256 = \"df42c2b01c5e1060b8281f67b4e5fb858260694916a667345a7305cd11e5dbfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1/0.22.0/download\"],\n strip_prefix = \"asn1-0.22.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.asn1-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__asn1_derive-0.22.0\",\n sha256 = \"cdccf849b54365e3693e9a90ad36e4482b79937e6373ac8e2cf229c985187b21\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1_derive/0.22.0/download\"],\n strip_prefix = \"asn1_derive-0.22.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.asn1_derive-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__autocfg-1.5.0\",\n sha256 = \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.0/download\"],\n strip_prefix = \"autocfg-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.autocfg-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__backtrace-0.3.75\",\n sha256 = \"6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backtrace/0.3.75/download\"],\n strip_prefix = \"backtrace-0.3.75\",\n build_file = Label(\"@crate_index//crate_index:BUILD.backtrace-0.3.75.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base16ct-0.2.0\",\n sha256 = \"4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base16ct/0.2.0/download\"],\n strip_prefix = \"base16ct-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base16ct-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.21.7\",\n sha256 = \"9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.21.7/download\"],\n strip_prefix = \"base64-0.21.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.21.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64ct-1.8.0\",\n sha256 = \"55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64ct/1.8.0/download\"],\n strip_prefix = \"base64ct-1.8.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64ct-1.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-1.3.2\",\n sha256 = \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/1.3.2/download\"],\n strip_prefix = \"bitflags-1.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-2.9.1\",\n sha256 = \"1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.9.1/download\"],\n strip_prefix = \"bitflags-2.9.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-2.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__block-buffer-0.10.4\",\n sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n strip_prefix = \"block-buffer-0.10.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bumpalo-3.19.0\",\n sha256 = \"46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.19.0/download\"],\n strip_prefix = \"bumpalo-3.19.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bumpalo-3.19.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__byteorder-1.5.0\",\n sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n strip_prefix = \"byteorder-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bytes-1.10.1\",\n sha256 = \"d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.10.1/download\"],\n strip_prefix = \"bytes-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bytes-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cc-1.2.31\",\n sha256 = \"c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.31/download\"],\n strip_prefix = \"cc-1.2.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cc-1.2.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg-if-1.0.1\",\n sha256 = \"9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.1/download\"],\n strip_prefix = \"cfg-if-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg-if-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__chrono-0.4.41\",\n sha256 = \"c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/chrono/0.4.41/download\"],\n strip_prefix = \"chrono-0.4.41\",\n build_file = Label(\"@crate_index//crate_index:BUILD.chrono-0.4.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-0.2.2\",\n sha256 = \"42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium/0.2.2/download\"],\n strip_prefix = \"ciborium-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-io-0.2.2\",\n sha256 = \"05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-io/0.2.2/download\"],\n strip_prefix = \"ciborium-io-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-io-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-ll-0.2.2\",\n sha256 = \"57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-ll/0.2.2/download\"],\n strip_prefix = \"ciborium-ll-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-ll-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cipher-0.4.4\",\n sha256 = \"773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cipher/0.4.4/download\"],\n strip_prefix = \"cipher-0.4.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cipher-0.4.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap-4.5.48\",\n sha256 = \"e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.5.48/download\"],\n strip_prefix = \"clap-4.5.48\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap-4.5.48.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_builder-4.5.48\",\n sha256 = \"c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.5.48/download\"],\n strip_prefix = \"clap_builder-4.5.48\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_builder-4.5.48.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_derive-4.5.47\",\n sha256 = \"bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.5.47/download\"],\n strip_prefix = \"clap_derive-4.5.47\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_derive-4.5.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_lex-0.7.5\",\n sha256 = \"b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.7.5/download\"],\n strip_prefix = \"clap_lex-0.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_lex-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__colorchoice-1.0.4\",\n sha256 = \"b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.4/download\"],\n strip_prefix = \"colorchoice-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.colorchoice-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.16.0\",\n sha256 = \"2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.16.0/download\"],\n strip_prefix = \"console-0.16.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__const-oid-0.9.6\",\n sha256 = \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/const-oid/0.9.6/download\"],\n strip_prefix = \"const-oid-0.9.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.const-oid-0.9.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-0.10.1\",\n sha256 = \"b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.10.1/download\"],\n strip_prefix = \"core-foundation-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-0.9.4\",\n sha256 = \"91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.9.4/download\"],\n strip_prefix = \"core-foundation-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__coset-0.3.8\",\n sha256 = \"f4c8cc80f631f8307b887faca24dcc3abc427cd0367f6eb6188f6e8f5b7ad8fb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/coset/0.3.8/download\"],\n strip_prefix = \"coset-0.3.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.coset-0.3.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cpufeatures-0.2.17\",\n sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n strip_prefix = \"cpufeatures-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cpufeatures-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc-3.3.0\",\n sha256 = \"9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc/3.3.0/download\"],\n strip_prefix = \"crc-3.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc-3.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc-catalog-2.4.0\",\n sha256 = \"19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc-catalog/2.4.0/download\"],\n strip_prefix = \"crc-catalog-2.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc-catalog-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc32fast-1.5.0\",\n sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n strip_prefix = \"crc32fast-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc32fast-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crunchy-0.2.4\",\n sha256 = \"460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crunchy/0.2.4/download\"],\n strip_prefix = \"crunchy-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crunchy-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crypto-bigint-0.5.5\",\n sha256 = \"0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-bigint/0.5.5/download\"],\n strip_prefix = \"crypto-bigint-0.5.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crypto-bigint-0.5.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crypto-common-0.1.6\",\n sha256 = \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-common/0.1.6/download\"],\n strip_prefix = \"crypto-common-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crypto-common-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cryptoki-0.10.0\",\n patch_args = [\n \"-p2\",\n ],\n patches = [\n \"@@//third_party/rust/patches:cryptoki-profile.patch\",\n \"@@//third_party/rust/patches:cryptoki-vendor-defined-mechanism-type.patch\",\n ],\n sha256 = \"781357a7779a8e92ea985121bbf379a9adf0777f44ab6392efc6abd5aa9b67db\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cryptoki/0.10.0/download\"],\n strip_prefix = \"cryptoki-0.10.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cryptoki-0.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cryptoki-sys-0.4.0\",\n sha256 = \"753e27d860277930ae9f394c119c8c70303236aab0ffab1d51f3d207dbb2bc4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cryptoki-sys/0.4.0/download\"],\n strip_prefix = \"cryptoki-sys-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cryptoki-sys-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling-0.20.11\",\n sha256 = \"fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling/0.20.11/download\"],\n strip_prefix = \"darling-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling_core-0.20.11\",\n sha256 = \"0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_core/0.20.11/download\"],\n strip_prefix = \"darling_core-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling_core-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling_macro-0.20.11\",\n sha256 = \"fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_macro/0.20.11/download\"],\n strip_prefix = \"darling_macro-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling_macro-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__der-0.7.10\",\n sha256 = \"e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/der/0.7.10/download\"],\n strip_prefix = \"der-0.7.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.der-0.7.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deranged-0.4.0\",\n sha256 = \"9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.4.0/download\"],\n strip_prefix = \"deranged-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deranged-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deser-hjson-2.2.4\",\n sha256 = \"7d94aac4095c08ded7e4b9ba7fc2b2929f11b94bb96897ca188b0f64e01688e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deser-hjson/2.2.4/download\"],\n strip_prefix = \"deser-hjson-2.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deser-hjson-2.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__digest-0.10.7\",\n sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n strip_prefix = \"digest-0.10.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__directories-6.0.0\",\n sha256 = \"16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/directories/6.0.0/download\"],\n strip_prefix = \"directories-6.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.directories-6.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dirs-sys-0.5.0\",\n sha256 = \"e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys/0.5.0/download\"],\n strip_prefix = \"dirs-sys-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dirs-sys-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__displaydoc-0.2.5\",\n sha256 = \"97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/displaydoc/0.2.5/download\"],\n strip_prefix = \"displaydoc-0.2.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.displaydoc-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dyn-clone-1.0.20\",\n sha256 = \"d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dyn-clone/1.0.20/download\"],\n strip_prefix = \"dyn-clone-1.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dyn-clone-1.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ecdsa-0.16.9\",\n sha256 = \"ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ecdsa/0.16.9/download\"],\n strip_prefix = \"ecdsa-0.16.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ecdsa-0.16.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__either-1.15.0\",\n sha256 = \"48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.15.0/download\"],\n strip_prefix = \"either-1.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.either-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__elliptic-curve-0.13.8\",\n sha256 = \"b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/elliptic-curve/0.13.8/download\"],\n strip_prefix = \"elliptic-curve-0.13.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.elliptic-curve-0.13.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-0.2.7\",\n sha256 = \"35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal/0.2.7/download\"],\n strip_prefix = \"embedded-hal-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-1.0.0\",\n sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n strip_prefix = \"embedded-hal-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-nb-1.0.0\",\n sha256 = \"fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal-nb/1.0.0/download\"],\n strip_prefix = \"embedded-hal-nb-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-nb-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encode_unicode-1.0.0\",\n sha256 = \"34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/1.0.0/download\"],\n strip_prefix = \"encode_unicode-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encode_unicode-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encoding_rs-0.8.35\",\n sha256 = \"75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encoding_rs/0.8.35/download\"],\n strip_prefix = \"encoding_rs-0.8.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encoding_rs-0.8.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_filter-0.1.3\",\n sha256 = \"186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_filter/0.1.3/download\"],\n strip_prefix = \"env_filter-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_filter-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_logger-0.11.8\",\n sha256 = \"13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.11.8/download\"],\n strip_prefix = \"env_logger-0.11.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_logger-0.11.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__equivalent-1.0.2\",\n sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n strip_prefix = \"equivalent-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__erased-serde-0.4.6\",\n sha256 = \"e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/erased-serde/0.4.6/download\"],\n strip_prefix = \"erased-serde-0.4.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.erased-serde-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__errno-0.3.13\",\n sha256 = \"778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.13/download\"],\n strip_prefix = \"errno-0.3.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.errno-0.3.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fastrand-2.3.0\",\n sha256 = \"37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.3.0/download\"],\n strip_prefix = \"fastrand-2.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fastrand-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ff-0.13.1\",\n sha256 = \"c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ff/0.13.1/download\"],\n strip_prefix = \"ff-0.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ff-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__flate2-1.1.2\",\n sha256 = \"4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.1.2/download\"],\n strip_prefix = \"flate2-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.flate2-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foreign-types-0.3.2\",\n sha256 = \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types/0.3.2/download\"],\n strip_prefix = \"foreign-types-0.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foreign-types-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foreign-types-shared-0.1.1\",\n sha256 = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types-shared/0.1.1/download\"],\n strip_prefix = \"foreign-types-shared-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foreign-types-shared-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__form_urlencoded-1.2.2\",\n sha256 = \"cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.2.2/download\"],\n strip_prefix = \"form_urlencoded-1.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.form_urlencoded-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-0.1.3\",\n sha256 = \"2f9c8c625c6b8634ce70cd8cbb2ab8a103e4c2b4185c86d9954d2e16b1ef7c4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi/0.1.3/download\"],\n strip_prefix = \"ftdi-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-embedded-hal-0.23.2\",\n sha256 = \"0fe355bc850d50b44519d42f875b788e6cb01fd52e4a6292250b23b29d6d5d8e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi-embedded-hal/0.23.2/download\"],\n strip_prefix = \"ftdi-embedded-hal-0.23.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-embedded-hal-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-mpsse-0.1.2\",\n sha256 = \"5dd2c246fb727197d284bf7273718ed6b1c9a94a128bb618b97f13daec658a12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi-mpsse/0.1.2/download\"],\n strip_prefix = \"ftdi-mpsse-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-mpsse-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-channel-0.3.31\",\n sha256 = \"2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.31/download\"],\n strip_prefix = \"futures-channel-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-channel-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-core-0.3.31\",\n sha256 = \"05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.31/download\"],\n strip_prefix = \"futures-core-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-core-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-io-0.3.31\",\n sha256 = \"9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.31/download\"],\n strip_prefix = \"futures-io-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-io-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-sink-0.3.31\",\n sha256 = \"e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.31/download\"],\n strip_prefix = \"futures-sink-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-sink-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-task-0.3.31\",\n sha256 = \"f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.31/download\"],\n strip_prefix = \"futures-task-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-task-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-util-0.3.31\",\n sha256 = \"9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.31/download\"],\n strip_prefix = \"futures-util-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-util-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__generic-array-0.14.7\",\n sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n strip_prefix = \"generic-array-0.14.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.2.16\",\n sha256 = \"335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.16/download\"],\n strip_prefix = \"getrandom-0.2.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.3.3\",\n sha256 = \"26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.3/download\"],\n strip_prefix = \"getrandom-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__gimli-0.31.1\",\n sha256 = \"07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gimli/0.31.1/download\"],\n strip_prefix = \"gimli-0.31.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.gimli-0.31.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__group-0.13.0\",\n sha256 = \"f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/group/0.13.0/download\"],\n strip_prefix = \"group-0.13.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.group-0.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__h2-0.4.12\",\n sha256 = \"f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.12/download\"],\n strip_prefix = \"h2-0.4.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.h2-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__half-2.7.1\",\n sha256 = \"6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/half/2.7.1/download\"],\n strip_prefix = \"half-2.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.half-2.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.12.3\",\n sha256 = \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.12.3/download\"],\n strip_prefix = \"hashbrown-0.12.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.15.4\",\n sha256 = \"5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.15.4/download\"],\n strip_prefix = \"hashbrown-0.15.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.15.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hex-0.4.3\",\n sha256 = \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hex/0.4.3/download\"],\n strip_prefix = \"hex-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hex-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hkdf-0.12.4\",\n sha256 = \"7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hkdf/0.12.4/download\"],\n strip_prefix = \"hkdf-0.12.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hkdf-0.12.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hmac-0.12.1\",\n sha256 = \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hmac/0.12.1/download\"],\n strip_prefix = \"hmac-0.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hmac-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-1.4.0\",\n sha256 = \"e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.0/download\"],\n strip_prefix = \"http-1.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-1.0.1\",\n sha256 = \"1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.0.1/download\"],\n strip_prefix = \"http-body-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-util-0.1.3\",\n sha256 = \"b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.3/download\"],\n strip_prefix = \"http-body-util-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-util-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__humantime-2.2.0\",\n sha256 = \"9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime/2.2.0/download\"],\n strip_prefix = \"humantime-2.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.humantime-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__humantime-serde-1.1.1\",\n sha256 = \"57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime-serde/1.1.1/download\"],\n strip_prefix = \"humantime-serde-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.humantime-serde-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-1.8.1\",\n sha256 = \"2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.8.1/download\"],\n strip_prefix = \"hyper-1.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-rustls-0.27.7\",\n sha256 = \"e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.27.7/download\"],\n strip_prefix = \"hyper-rustls-0.27.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-rustls-0.27.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-tls-0.6.0\",\n sha256 = \"70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-tls/0.6.0/download\"],\n strip_prefix = \"hyper-tls-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-tls-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-util-0.1.19\",\n sha256 = \"727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.19/download\"],\n strip_prefix = \"hyper-util-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-util-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iana-time-zone-0.1.63\",\n sha256 = \"b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone/0.1.63/download\"],\n strip_prefix = \"iana-time-zone-0.1.63\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iana-time-zone-0.1.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iana-time-zone-haiku-0.1.2\",\n sha256 = \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download\"],\n strip_prefix = \"iana-time-zone-haiku-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iana-time-zone-haiku-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_collections-2.1.1\",\n sha256 = \"4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_collections/2.1.1/download\"],\n strip_prefix = \"icu_collections-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_collections-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_locale_core-2.1.1\",\n sha256 = \"edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_locale_core/2.1.1/download\"],\n strip_prefix = \"icu_locale_core-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_locale_core-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_normalizer-2.1.1\",\n sha256 = \"5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer/2.1.1/download\"],\n strip_prefix = \"icu_normalizer-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_normalizer-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_normalizer_data-2.1.1\",\n sha256 = \"7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer_data/2.1.1/download\"],\n strip_prefix = \"icu_normalizer_data-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_normalizer_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_properties-2.1.1\",\n sha256 = \"e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties/2.1.1/download\"],\n strip_prefix = \"icu_properties-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_properties-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_properties_data-2.1.1\",\n sha256 = \"02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties_data/2.1.1/download\"],\n strip_prefix = \"icu_properties_data-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_properties_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_provider-2.1.1\",\n sha256 = \"85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_provider/2.1.1/download\"],\n strip_prefix = \"icu_provider-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_provider-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ident_case-1.0.1\",\n sha256 = \"b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ident_case/1.0.1/download\"],\n strip_prefix = \"ident_case-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ident_case-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__idna-1.1.0\",\n sha256 = \"3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/1.1.0/download\"],\n strip_prefix = \"idna-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.idna-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__idna_adapter-1.2.1\",\n sha256 = \"3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna_adapter/1.2.1/download\"],\n strip_prefix = \"idna_adapter-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.idna_adapter-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-1.9.3\",\n sha256 = \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/1.9.3/download\"],\n strip_prefix = \"indexmap-1.9.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-1.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-2.10.0\",\n sha256 = \"fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.10.0/download\"],\n strip_prefix = \"indexmap-2.10.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-2.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-0.18.0\",\n sha256 = \"70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.18.0/download\"],\n strip_prefix = \"indicatif-0.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-0.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indoc-2.0.6\",\n sha256 = \"f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indoc/2.0.6/download\"],\n strip_prefix = \"indoc-2.0.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indoc-2.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__inout-0.1.4\",\n sha256 = \"879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/inout/0.1.4/download\"],\n strip_prefix = \"inout-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.inout-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__inventory-0.3.20\",\n sha256 = \"ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/inventory/0.3.20/download\"],\n strip_prefix = \"inventory-0.3.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.inventory-0.3.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__io-kit-sys-0.4.1\",\n sha256 = \"617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/io-kit-sys/0.4.1/download\"],\n strip_prefix = \"io-kit-sys-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.io-kit-sys-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__io-uring-0.7.9\",\n sha256 = \"d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/io-uring/0.7.9/download\"],\n strip_prefix = \"io-uring-0.7.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.io-uring-0.7.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ipnet-2.11.0\",\n sha256 = \"469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.11.0/download\"],\n strip_prefix = \"ipnet-2.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ipnet-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iri-string-0.7.9\",\n sha256 = \"4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iri-string/0.7.9/download\"],\n strip_prefix = \"iri-string-0.7.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iri-string-0.7.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__is_terminal_polyfill-1.70.1\",\n sha256 = \"7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.1/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.is_terminal_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itoa-1.0.15\",\n sha256 = \"4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.15/download\"],\n strip_prefix = \"itoa-1.0.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itoa-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-0.2.15\",\n sha256 = \"be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.15/download\"],\n strip_prefix = \"jiff-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-static-0.2.15\",\n sha256 = \"03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.15/download\"],\n strip_prefix = \"jiff-static-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-static-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__js-sys-0.3.77\",\n sha256 = \"1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.77/download\"],\n strip_prefix = \"js-sys-0.3.77\",\n build_file = Label(\"@crate_index//crate_index:BUILD.js-sys-0.3.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__keccak-0.1.5\",\n sha256 = \"ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/keccak/0.1.5/download\"],\n strip_prefix = \"keccak-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.keccak-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libc-0.2.174\",\n sha256 = \"1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.174/download\"],\n strip_prefix = \"libc-0.2.174\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libc-0.2.174.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libftdi1-sys-1.1.3\",\n sha256 = \"575286f9af093f56c7805f4f94874871b84216d1545f499d2cbad9e370000fe7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libftdi1-sys/1.1.3/download\"],\n strip_prefix = \"libftdi1-sys-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libftdi1-sys-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libloading-0.8.8\",\n sha256 = \"07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.8/download\"],\n strip_prefix = \"libloading-0.8.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libloading-0.8.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libm-0.2.15\",\n sha256 = \"f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.15/download\"],\n strip_prefix = \"libm-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libm-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libredox-0.1.9\",\n sha256 = \"391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libredox/0.1.9/download\"],\n strip_prefix = \"libredox-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libredox-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libudev-0.3.0\",\n sha256 = \"78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libudev/0.3.0/download\"],\n strip_prefix = \"libudev-0.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libudev-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libudev-sys-0.1.4\",\n patch_args = [\n \"-p1\",\n ],\n patches = [\n \"@@//third_party/rust/patches:libudev-sys-0.1.4.patch\",\n ],\n sha256 = \"3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libudev-sys/0.1.4/download\"],\n strip_prefix = \"libudev-sys-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libudev-sys-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libusb1-sys-0.7.0\",\n sha256 = \"da050ade7ac4ff1ba5379af847a10a10a8e284181e060105bf8d86960ce9ce0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libusb1-sys/0.7.0/download\"],\n strip_prefix = \"libusb1-sys-0.7.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libusb1-sys-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.9.4\",\n sha256 = \"cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.9.4/download\"],\n strip_prefix = \"linux-raw-sys-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__litemap-0.8.1\",\n sha256 = \"6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/litemap/0.8.1/download\"],\n strip_prefix = \"litemap-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.litemap-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lock_api-0.4.13\",\n sha256 = \"96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.13/download\"],\n strip_prefix = \"lock_api-0.4.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lock_api-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__log-0.4.27\",\n sha256 = \"13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.27/download\"],\n strip_prefix = \"log-0.4.27\",\n build_file = Label(\"@crate_index//crate_index:BUILD.log-0.4.27.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mach2-0.4.3\",\n sha256 = \"d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mach2/0.4.3/download\"],\n strip_prefix = \"mach2-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mach2-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__memchr-2.7.5\",\n sha256 = \"32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.7.5/download\"],\n strip_prefix = \"memchr-2.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.memchr-2.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__miniz_oxide-0.8.9\",\n sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n strip_prefix = \"miniz_oxide-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.miniz_oxide-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mio-1.0.4\",\n sha256 = \"78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.0.4/download\"],\n strip_prefix = \"mio-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mio-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__native-tls-0.2.14\",\n sha256 = \"87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-tls/0.2.14/download\"],\n strip_prefix = \"native-tls-0.2.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.native-tls-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nb-0.1.3\",\n sha256 = \"801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nb/0.1.3/download\"],\n strip_prefix = \"nb-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nb-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nb-1.1.0\",\n sha256 = \"8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nb/1.1.0/download\"],\n strip_prefix = \"nb-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nb-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.26.4\",\n sha256 = \"598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.26.4/download\"],\n strip_prefix = \"nix-0.26.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-bigint-dig-0.8.4\",\n sha256 = \"dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint-dig/0.8.4/download\"],\n strip_prefix = \"num-bigint-dig-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-bigint-dig-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-conv-0.1.0\",\n sha256 = \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.1.0/download\"],\n strip_prefix = \"num-conv-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-conv-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-integer-0.1.46\",\n sha256 = \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.46/download\"],\n strip_prefix = \"num-integer-0.1.46\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-integer-0.1.46.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-iter-0.1.45\",\n sha256 = \"1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-iter/0.1.45/download\"],\n strip_prefix = \"num-iter-0.1.45\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-iter-0.1.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__object-0.36.7\",\n sha256 = \"62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/object/0.36.7/download\"],\n strip_prefix = \"object-0.36.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.object-0.36.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell-1.21.3\",\n sha256 = \"42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.3/download\"],\n strip_prefix = \"once_cell-1.21.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell-1.21.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell_polyfill-1.70.1\",\n sha256 = \"a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.1/download\"],\n strip_prefix = \"once_cell_polyfill-1.70.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-0.10.73\",\n sha256 = \"8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl/0.10.73/download\"],\n strip_prefix = \"openssl-0.10.73\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-0.10.73.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-macros-0.1.1\",\n sha256 = \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-macros/0.1.1/download\"],\n strip_prefix = \"openssl-macros-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-probe-0.1.6\",\n sha256 = \"d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.1.6/download\"],\n strip_prefix = \"openssl-probe-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-probe-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-sys-0.9.109\",\n sha256 = \"90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-sys/0.9.109/download\"],\n strip_prefix = \"openssl-sys-0.9.109\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-sys-0.9.109.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__option-ext-0.2.0\",\n sha256 = \"04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/option-ext/0.2.0/download\"],\n strip_prefix = \"option-ext-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.option-ext-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__p256-0.13.2\",\n sha256 = \"c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/p256/0.13.2/download\"],\n strip_prefix = \"p256-0.13.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.p256-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__p384-0.13.1\",\n sha256 = \"fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/p384/0.13.1/download\"],\n strip_prefix = \"p384-0.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.p384-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__parking_lot-0.12.4\",\n sha256 = \"70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.4/download\"],\n strip_prefix = \"parking_lot-0.12.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.parking_lot-0.12.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__parking_lot_core-0.9.11\",\n sha256 = \"bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.11/download\"],\n strip_prefix = \"parking_lot_core-0.9.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.parking_lot_core-0.9.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__paste-1.0.15\",\n sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n strip_prefix = \"paste-1.0.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pem-rfc7468-0.7.0\",\n sha256 = \"88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem-rfc7468/0.7.0/download\"],\n strip_prefix = \"pem-rfc7468-0.7.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pem-rfc7468-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest-2.8.1\",\n sha256 = \"1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest/2.8.1/download\"],\n strip_prefix = \"pest-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_derive-2.8.1\",\n sha256 = \"bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_derive/2.8.1/download\"],\n strip_prefix = \"pest_derive-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_derive-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_generator-2.8.1\",\n sha256 = \"87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_generator/2.8.1/download\"],\n strip_prefix = \"pest_generator-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_generator-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_meta-2.8.1\",\n sha256 = \"edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_meta/2.8.1/download\"],\n strip_prefix = \"pest_meta-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_meta-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-lite-0.2.16\",\n sha256 = \"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.16/download\"],\n strip_prefix = \"pin-project-lite-0.2.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-lite-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-utils-0.1.0\",\n sha256 = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-utils/0.1.0/download\"],\n strip_prefix = \"pin-utils-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-utils-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkcs1-0.7.5\",\n sha256 = \"c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkcs1/0.7.5/download\"],\n strip_prefix = \"pkcs1-0.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkcs1-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkcs8-0.10.2\",\n sha256 = \"f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkcs8/0.10.2/download\"],\n strip_prefix = \"pkcs8-0.10.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkcs8-0.10.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkg-config-0.3.32\",\n sha256 = \"7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.32/download\"],\n strip_prefix = \"pkg-config-0.3.32\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkg-config-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-1.11.1\",\n sha256 = \"f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.11.1/download\"],\n strip_prefix = \"portable-atomic-1.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-util-0.2.4\",\n sha256 = \"d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.4/download\"],\n strip_prefix = \"portable-atomic-util-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-util-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__potential_utf-0.1.4\",\n sha256 = \"b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/potential_utf/0.1.4/download\"],\n strip_prefix = \"potential_utf-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.potential_utf-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__primeorder-0.13.6\",\n sha256 = \"353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/primeorder/0.13.6/download\"],\n strip_prefix = \"primeorder-0.13.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.primeorder-0.13.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-1.0.95\",\n sha256 = \"02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.95/download\"],\n strip_prefix = \"proc-macro2-1.0.95\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-1.0.95.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__quote-1.0.40\",\n sha256 = \"1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.40/download\"],\n strip_prefix = \"quote-1.0.40\",\n build_file = Label(\"@crate_index//crate_index:BUILD.quote-1.0.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_core-0.6.4\",\n sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n strip_prefix = \"rand_core-0.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__redox_syscall-0.5.17\",\n sha256 = \"5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.17/download\"],\n strip_prefix = \"redox_syscall-0.5.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.redox_syscall-0.5.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__redox_users-0.5.2\",\n sha256 = \"a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_users/0.5.2/download\"],\n strip_prefix = \"redox_users-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.redox_users-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ref-cast-1.0.24\",\n sha256 = \"4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast/1.0.24/download\"],\n strip_prefix = \"ref-cast-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ref-cast-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ref-cast-impl-1.0.24\",\n sha256 = \"1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast-impl/1.0.24/download\"],\n strip_prefix = \"ref-cast-impl-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ref-cast-impl-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-1.11.1\",\n sha256 = \"b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.11.1/download\"],\n strip_prefix = \"regex-1.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-automata-0.4.9\",\n sha256 = \"809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.9/download\"],\n strip_prefix = \"regex-automata-0.4.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-automata-0.4.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-syntax-0.8.5\",\n sha256 = \"2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.5/download\"],\n strip_prefix = \"regex-syntax-0.8.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-syntax-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__reqwest-0.12.24\",\n sha256 = \"9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.12.24/download\"],\n strip_prefix = \"reqwest-0.12.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.reqwest-0.12.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rfc6979-0.4.0\",\n sha256 = \"f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rfc6979/0.4.0/download\"],\n strip_prefix = \"rfc6979-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rfc6979-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rsa-0.9.8\",\n sha256 = \"78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rsa/0.9.8/download\"],\n strip_prefix = \"rsa-0.9.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rsa-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rusb-0.9.4\",\n sha256 = \"ab9f9ff05b63a786553a4c02943b74b34a988448671001e9a27e2f0565cc05a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusb/0.9.4/download\"],\n strip_prefix = \"rusb-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rusb-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-demangle-0.1.26\",\n sha256 = \"56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.26/download\"],\n strip_prefix = \"rustc-demangle-0.1.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-demangle-0.1.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-1.0.8\",\n sha256 = \"11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.0.8/download\"],\n strip_prefix = \"rustix-1.0.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-1.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-0.23.35\",\n sha256 = \"533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.35/download\"],\n strip_prefix = \"rustls-0.23.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-0.23.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-pki-types-1.13.1\",\n sha256 = \"708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.13.1/download\"],\n strip_prefix = \"rustls-pki-types-1.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-pki-types-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-webpki-0.103.8\",\n sha256 = \"2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.8/download\"],\n strip_prefix = \"rustls-webpki-0.103.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-webpki-0.103.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustversion-1.0.21\",\n sha256 = \"8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.21/download\"],\n strip_prefix = \"rustversion-1.0.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustversion-1.0.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ruzstd-0.7.3\",\n sha256 = \"fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ruzstd/0.7.3/download\"],\n strip_prefix = \"ruzstd-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ruzstd-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ryu-1.0.20\",\n sha256 = \"28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.20/download\"],\n strip_prefix = \"ryu-1.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ryu-1.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schannel-0.1.28\",\n sha256 = \"891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.28/download\"],\n strip_prefix = \"schannel-0.1.28\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schannel-0.1.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schemars-0.9.0\",\n sha256 = \"4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schemars/0.9.0/download\"],\n strip_prefix = \"schemars-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schemars-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schemars-1.0.4\",\n sha256 = \"82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schemars/1.0.4/download\"],\n strip_prefix = \"schemars-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schemars-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sec1-0.7.3\",\n sha256 = \"d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sec1/0.7.3/download\"],\n strip_prefix = \"sec1-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sec1-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__secrecy-0.8.0\",\n sha256 = \"9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.8.0/download\"],\n strip_prefix = \"secrecy-0.8.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.secrecy-0.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__security-framework-2.11.1\",\n sha256 = \"897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/2.11.1/download\"],\n strip_prefix = \"security-framework-2.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.security-framework-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__security-framework-sys-2.15.0\",\n sha256 = \"cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.15.0/download\"],\n strip_prefix = \"security-framework-sys-2.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.security-framework-sys-2.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde-1.0.219\",\n sha256 = \"5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.219/download\"],\n strip_prefix = \"serde-1.0.219\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde-1.0.219.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_bytes-0.11.17\",\n sha256 = \"8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_bytes/0.11.17/download\"],\n strip_prefix = \"serde_bytes-0.11.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_bytes-0.11.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_derive-1.0.219\",\n sha256 = \"5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.219/download\"],\n strip_prefix = \"serde_derive-1.0.219\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_derive-1.0.219.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_json-1.0.142\",\n sha256 = \"030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.142/download\"],\n strip_prefix = \"serde_json-1.0.142\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_json-1.0.142.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_with-3.14.0\",\n sha256 = \"f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_with/3.14.0/download\"],\n strip_prefix = \"serde_with-3.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_with-3.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_with_macros-3.14.0\",\n sha256 = \"de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_with_macros/3.14.0/download\"],\n strip_prefix = \"serde_with_macros-3.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_with_macros-3.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serialport-4.7.2\",\n sha256 = \"cdb0bc984f6af6ef8bab54e6cf2071579ee75b9286aa9f2319a0d220c28b0a2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serialport/4.7.2/download\"],\n strip_prefix = \"serialport-4.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serialport-4.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sha2-0.10.9\",\n sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n strip_prefix = \"sha2-0.10.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sha2-0.10.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sha3-0.10.8\",\n sha256 = \"75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha3/0.10.8/download\"],\n strip_prefix = \"sha3-0.10.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sha3-0.10.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shellwords-1.1.0\",\n sha256 = \"89e515aa4699a88148ed5ef96413ceef0048ce95b43fbc955a33bde0a70fcae6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shellwords/1.1.0/download\"],\n strip_prefix = \"shellwords-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shellwords-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-registry-1.4.6\",\n sha256 = \"b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.6/download\"],\n strip_prefix = \"signal-hook-registry-1.4.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-registry-1.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signature-2.2.0\",\n sha256 = \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signature/2.2.0/download\"],\n strip_prefix = \"signature-2.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signature-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__slab-0.4.11\",\n sha256 = \"7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.11/download\"],\n strip_prefix = \"slab-0.4.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.slab-0.4.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smallvec-1.15.1\",\n sha256 = \"67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.1/download\"],\n strip_prefix = \"smallvec-1.15.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smallvec-1.15.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__socket2-0.6.0\",\n sha256 = \"233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.0/download\"],\n strip_prefix = \"socket2-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.socket2-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spki-0.7.3\",\n sha256 = \"d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spki/0.7.3/download\"],\n strip_prefix = \"spki-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spki-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__stable_deref_trait-1.2.1\",\n sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n strip_prefix = \"stable_deref_trait-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__static_assertions-1.1.0\",\n sha256 = \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/static_assertions/1.1.0/download\"],\n strip_prefix = \"static_assertions-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.static_assertions-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strsim-0.11.1\",\n sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n strip_prefix = \"strsim-0.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strum-0.27.2\",\n sha256 = \"af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum/0.27.2/download\"],\n strip_prefix = \"strum-0.27.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strum-0.27.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strum_macros-0.27.2\",\n sha256 = \"7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum_macros/0.27.2/download\"],\n strip_prefix = \"strum_macros-0.27.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strum_macros-0.27.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__subtle-2.6.1\",\n sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n strip_prefix = \"subtle-2.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-2.0.104\",\n sha256 = \"17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.104/download\"],\n strip_prefix = \"syn-2.0.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-2.0.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__synstructure-0.13.2\",\n sha256 = \"728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/synstructure/0.13.2/download\"],\n strip_prefix = \"synstructure-0.13.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.synstructure-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__system-configuration-0.6.1\",\n sha256 = \"3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration/0.6.1/download\"],\n strip_prefix = \"system-configuration-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.system-configuration-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__system-configuration-sys-0.6.0\",\n sha256 = \"8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration-sys/0.6.0/download\"],\n strip_prefix = \"system-configuration-sys-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.system-configuration-sys-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tempfile-3.20.0\",\n sha256 = \"e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.20.0/download\"],\n strip_prefix = \"tempfile-3.20.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tempfile-3.20.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-1.0.69\",\n sha256 = \"b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.69/download\"],\n strip_prefix = \"thiserror-1.0.69\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-2.0.12\",\n sha256 = \"567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.12/download\"],\n strip_prefix = \"thiserror-2.0.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-2.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-1.0.69\",\n sha256 = \"4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.69/download\"],\n strip_prefix = \"thiserror-impl-1.0.69\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-2.0.12\",\n sha256 = \"7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.12/download\"],\n strip_prefix = \"thiserror-impl-2.0.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-2.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-0.3.41\",\n sha256 = \"8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.41/download\"],\n strip_prefix = \"time-0.3.41\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-0.3.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-core-0.1.4\",\n sha256 = \"c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.4/download\"],\n strip_prefix = \"time-core-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-core-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-macros-0.2.22\",\n sha256 = \"3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.22/download\"],\n strip_prefix = \"time-macros-0.2.22\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-macros-0.2.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tiny-keccak-2.0.2\",\n sha256 = \"2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tiny-keccak/2.0.2/download\"],\n strip_prefix = \"tiny-keccak-2.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tiny-keccak-2.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tinystr-0.8.2\",\n sha256 = \"42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinystr/0.8.2/download\"],\n strip_prefix = \"tinystr-0.8.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tinystr-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-1.47.1\",\n sha256 = \"89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.47.1/download\"],\n strip_prefix = \"tokio-1.47.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-1.47.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-macros-2.5.0\",\n sha256 = \"6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.5.0/download\"],\n strip_prefix = \"tokio-macros-2.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-macros-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-native-tls-0.3.1\",\n sha256 = \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-native-tls/0.3.1/download\"],\n strip_prefix = \"tokio-native-tls-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-native-tls-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-rustls-0.26.4\",\n sha256 = \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.26.4/download\"],\n strip_prefix = \"tokio-rustls-0.26.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-rustls-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-util-0.7.17\",\n sha256 = \"2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.17/download\"],\n strip_prefix = \"tokio-util-0.7.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-util-0.7.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-0.5.2\",\n sha256 = \"d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.2/download\"],\n strip_prefix = \"tower-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-http-0.6.7\",\n sha256 = \"9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-http/0.6.7/download\"],\n strip_prefix = \"tower-http-0.6.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-http-0.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-0.1.43\",\n sha256 = \"2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.43/download\"],\n strip_prefix = \"tracing-0.1.43\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-0.1.43.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-core-0.1.35\",\n sha256 = \"7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.35/download\"],\n strip_prefix = \"tracing-core-0.1.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-core-0.1.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__twox-hash-1.6.3\",\n sha256 = \"97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/twox-hash/1.6.3/download\"],\n strip_prefix = \"twox-hash-1.6.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.twox-hash-1.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typeid-1.0.3\",\n sha256 = \"bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typeid/1.0.3/download\"],\n strip_prefix = \"typeid-1.0.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typeid-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typenum-1.18.0\",\n sha256 = \"1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.18.0/download\"],\n strip_prefix = \"typenum-1.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typenum-1.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typetag-0.2.20\",\n sha256 = \"73f22b40dd7bfe8c14230cf9702081366421890435b2d625fa92b4acc4c3de6f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typetag/0.2.20/download\"],\n strip_prefix = \"typetag-0.2.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typetag-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typetag-impl-0.2.20\",\n sha256 = \"35f5380909ffc31b4de4f4bdf96b877175a016aa2ca98cee39fcfd8c4d53d952\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typetag-impl/0.2.20/download\"],\n strip_prefix = \"typetag-impl-0.2.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typetag-impl-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ucd-trie-0.1.7\",\n sha256 = \"2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ucd-trie/0.1.7/download\"],\n strip_prefix = \"ucd-trie-0.1.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ucd-trie-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unescaper-0.1.6\",\n sha256 = \"c01d12e3a56a4432a8b436f293c25f4808bdf9e9f9f98f9260bba1f1bc5a1f26\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unescaper/0.1.6/download\"],\n strip_prefix = \"unescaper-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unescaper-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-ident-1.0.18\",\n sha256 = \"5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.18/download\"],\n strip_prefix = \"unicode-ident-1.0.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-ident-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-width-0.2.1\",\n sha256 = \"4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.2.1/download\"],\n strip_prefix = \"unicode-width-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-width-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unit-prefix-0.5.1\",\n sha256 = \"323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unit-prefix/0.5.1/download\"],\n strip_prefix = \"unit-prefix-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unit-prefix-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__url-2.5.7\",\n sha256 = \"08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.5.7/download\"],\n strip_prefix = \"url-2.5.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.url-2.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__utf8_iter-1.0.4\",\n sha256 = \"b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8_iter/1.0.4/download\"],\n strip_prefix = \"utf8_iter-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.utf8_iter-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__utf8parse-0.2.2\",\n sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n strip_prefix = \"utf8parse-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__version_check-0.9.5\",\n sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n strip_prefix = \"version_check-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__void-1.0.2\",\n sha256 = \"6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/void/1.0.2/download\"],\n strip_prefix = \"void-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.void-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.14.2-wasi-0.2.4\",\n sha256 = \"9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.14.2+wasi-0.2.4/download\"],\n strip_prefix = \"wasi-0.14.2+wasi-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.14.2+wasi-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-0.2.100\",\n sha256 = \"1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-backend-0.2.100\",\n sha256 = \"2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-backend/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-backend-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-backend-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-futures-0.4.50\",\n sha256 = \"555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.50/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.50\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-futures-0.4.50.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-0.2.100\",\n sha256 = \"7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-support-0.2.100\",\n sha256 = \"8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-support-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-shared-0.2.100\",\n sha256 = \"1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-shared-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-sys-0.3.77\",\n sha256 = \"33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.77/download\"],\n strip_prefix = \"web-sys-0.3.77\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-sys-0.3.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-0.3.9\",\n sha256 = \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi/0.3.9/download\"],\n strip_prefix = \"winapi-0.3.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-i686-pc-windows-gnu-0.4.0\",\n sha256 = \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-i686-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-x86_64-pc-windows-gnu-0.4.0\",\n sha256 = \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-x86_64-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-core-0.61.2\",\n sha256 = \"c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.61.2/download\"],\n strip_prefix = \"windows-core-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-core-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-implement-0.60.0\",\n sha256 = \"a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-implement/0.60.0/download\"],\n strip_prefix = \"windows-implement-0.60.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-implement-0.60.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-interface-0.59.1\",\n sha256 = \"bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-interface/0.59.1/download\"],\n strip_prefix = \"windows-interface-0.59.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-interface-0.59.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.1.3\",\n sha256 = \"5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.1.3/download\"],\n strip_prefix = \"windows-link-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-registry-0.6.1\",\n sha256 = \"02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-registry/0.6.1/download\"],\n strip_prefix = \"windows-registry-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-registry-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.3.4\",\n sha256 = \"56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.3.4/download\"],\n strip_prefix = \"windows-result-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.4.1\",\n sha256 = \"7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.4.1/download\"],\n strip_prefix = \"windows-result-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.4.2\",\n sha256 = \"56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.4.2/download\"],\n strip_prefix = \"windows-strings-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.5.1\",\n sha256 = \"7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.5.1/download\"],\n strip_prefix = \"windows-strings-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.59.0\",\n sha256 = \"1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.59.0/download\"],\n strip_prefix = \"windows-sys-0.59.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.60.2\",\n sha256 = \"f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.60.2/download\"],\n strip_prefix = \"windows-sys-0.60.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.61.2\",\n sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n strip_prefix = \"windows-sys-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-targets-0.53.3\",\n sha256 = \"d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.53.3/download\"],\n strip_prefix = \"windows-targets-0.53.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-targets-0.53.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_gnullvm-0.53.0\",\n sha256 = \"86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_msvc-0.53.0\",\n sha256 = \"c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.53.0/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnu-0.53.0\",\n sha256 = \"c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.53.0/download\"],\n strip_prefix = \"windows_i686_gnu-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnullvm-0.53.0\",\n sha256 = \"9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_msvc-0.53.0\",\n sha256 = \"581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.53.0/download\"],\n strip_prefix = \"windows_i686_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnu-0.53.0\",\n sha256 = \"2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnullvm-0.53.0\",\n sha256 = \"0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_msvc-0.53.0\",\n sha256 = \"271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wit-bindgen-rt-0.39.0\",\n sha256 = \"6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rt/0.39.0/download\"],\n strip_prefix = \"wit-bindgen-rt-0.39.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wit-bindgen-rt-0.39.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__writeable-0.6.2\",\n sha256 = \"9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/writeable/0.6.2/download\"],\n strip_prefix = \"writeable-0.6.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.writeable-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yoke-0.8.1\",\n sha256 = \"72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke/0.8.1/download\"],\n strip_prefix = \"yoke-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yoke-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yoke-derive-0.8.1\",\n sha256 = \"b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke-derive/0.8.1/download\"],\n strip_prefix = \"yoke-derive-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yoke-derive-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-0.8.26\",\n sha256 = \"1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.8.26/download\"],\n strip_prefix = \"zerocopy-0.8.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-0.8.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-derive-0.8.26\",\n sha256 = \"9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.26/download\"],\n strip_prefix = \"zerocopy-derive-0.8.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-derive-0.8.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerofrom-0.1.6\",\n sha256 = \"50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom/0.1.6/download\"],\n strip_prefix = \"zerofrom-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerofrom-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerofrom-derive-0.1.6\",\n sha256 = \"d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom-derive/0.1.6/download\"],\n strip_prefix = \"zerofrom-derive-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerofrom-derive-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize-1.8.1\",\n sha256 = \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.1/download\"],\n strip_prefix = \"zeroize-1.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerotrie-0.2.3\",\n sha256 = \"2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerotrie/0.2.3/download\"],\n strip_prefix = \"zerotrie-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerotrie-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerovec-0.11.5\",\n sha256 = \"6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec/0.11.5/download\"],\n strip_prefix = \"zerovec-0.11.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerovec-0.11.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerovec-derive-0.11.2\",\n sha256 = \"eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec-derive/0.11.2/download\"],\n strip_prefix = \"zerovec-derive-0.11.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerovec-derive-0.11.2.bazel\"),\n )\n\n return [\n struct(repo=\"crate_index__aes-0.8.4\", is_dev_dep = False),\n struct(repo=\"crate_index__anstyle-1.0.11\", is_dev_dep = False),\n struct(repo=\"crate_index__anyhow-1.0.98\", is_dev_dep = False),\n struct(repo=\"crate_index__arrayvec-0.7.6\", is_dev_dep = False),\n struct(repo=\"crate_index__asn1-0.22.0\", is_dev_dep = False),\n struct(repo=\"crate_index__base64-0.21.7\", is_dev_dep = False),\n struct(repo=\"crate_index__base64ct-1.8.0\", is_dev_dep = False),\n struct(repo=\"crate_index__bitflags-2.9.1\", is_dev_dep = False),\n struct(repo=\"crate_index__byteorder-1.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__chrono-0.4.41\", is_dev_dep = False),\n struct(repo=\"crate_index__ciborium-0.2.2\", is_dev_dep = False),\n struct(repo=\"crate_index__clap-4.5.48\", is_dev_dep = False),\n struct(repo=\"crate_index__const-oid-0.9.6\", is_dev_dep = False),\n struct(repo=\"crate_index__coset-0.3.8\", is_dev_dep = False),\n struct(repo=\"crate_index__crc-3.3.0\", is_dev_dep = False),\n struct(repo=\"crate_index__cryptoki-0.10.0\", is_dev_dep = False),\n struct(repo=\"crate_index__cryptoki-sys-0.4.0\", is_dev_dep = False),\n struct(repo=\"crate_index__der-0.7.10\", is_dev_dep = False),\n struct(repo=\"crate_index__deser-hjson-2.2.4\", is_dev_dep = False),\n struct(repo=\"crate_index__directories-6.0.0\", is_dev_dep = False),\n struct(repo=\"crate_index__ecdsa-0.16.9\", is_dev_dep = False),\n struct(repo=\"crate_index__elliptic-curve-0.13.8\", is_dev_dep = False),\n struct(repo=\"crate_index__embedded-hal-1.0.0\", is_dev_dep = False),\n struct(repo=\"crate_index__env_logger-0.11.8\", is_dev_dep = False),\n struct(repo=\"crate_index__erased-serde-0.4.6\", is_dev_dep = False),\n struct(repo=\"crate_index__foreign-types-0.3.2\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-0.1.3\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-embedded-hal-0.23.2\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-mpsse-0.1.2\", is_dev_dep = False),\n struct(repo=\"crate_index__heck-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__hex-0.4.3\", is_dev_dep = False),\n struct(repo=\"crate_index__hmac-0.12.1\", is_dev_dep = False),\n struct(repo=\"crate_index__humantime-2.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__humantime-serde-1.1.1\", is_dev_dep = False),\n struct(repo=\"crate_index__indexmap-2.10.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-0.18.0\", is_dev_dep = False),\n struct(repo=\"crate_index__inventory-0.3.20\", is_dev_dep = False),\n struct(repo=\"crate_index__itertools-0.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__libloading-0.8.8\", is_dev_dep = False),\n struct(repo=\"crate_index__log-0.4.27\", is_dev_dep = False),\n struct(repo=\"crate_index__memchr-2.7.5\", is_dev_dep = False),\n struct(repo=\"crate_index__num-bigint-dig-0.8.4\", is_dev_dep = False),\n struct(repo=\"crate_index__num-traits-0.2.19\", is_dev_dep = False),\n struct(repo=\"crate_index__object-0.36.7\", is_dev_dep = False),\n struct(repo=\"crate_index__once_cell-1.21.3\", is_dev_dep = False),\n struct(repo=\"crate_index__openssl-0.10.73\", is_dev_dep = False),\n struct(repo=\"crate_index__openssl-sys-0.9.109\", is_dev_dep = False),\n struct(repo=\"crate_index__p256-0.13.2\", is_dev_dep = False),\n struct(repo=\"crate_index__p384-0.13.1\", is_dev_dep = False),\n struct(repo=\"crate_index__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crate_index__pem-rfc7468-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__pest-2.8.1\", is_dev_dep = False),\n struct(repo=\"crate_index__pest_derive-2.8.1\", is_dev_dep = False),\n struct(repo=\"crate_index__proc-macro2-1.0.95\", is_dev_dep = False),\n struct(repo=\"crate_index__quote-1.0.40\", is_dev_dep = False),\n struct(repo=\"crate_index__rand-0.8.5\", is_dev_dep = False),\n struct(repo=\"crate_index__rand_chacha-0.3.1\", is_dev_dep = False),\n struct(repo=\"crate_index__regex-1.11.1\", is_dev_dep = False),\n struct(repo=\"crate_index__reqwest-0.12.24\", is_dev_dep = False),\n struct(repo=\"crate_index__rsa-0.9.8\", is_dev_dep = False),\n struct(repo=\"crate_index__rusb-0.9.4\", is_dev_dep = False),\n struct(repo=\"crate_index__rustix-1.0.8\", is_dev_dep = False),\n struct(repo=\"crate_index__scopeguard-1.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__serde-1.0.219\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_bytes-0.11.17\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_json-1.0.142\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_with-3.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__serialport-4.7.2\", is_dev_dep = False),\n struct(repo=\"crate_index__sha2-0.10.9\", is_dev_dep = False),\n struct(repo=\"crate_index__sha3-0.10.8\", is_dev_dep = False),\n struct(repo=\"crate_index__shellwords-1.1.0\", is_dev_dep = False),\n struct(repo=\"crate_index__strum-0.27.2\", is_dev_dep = False),\n struct(repo=\"crate_index__syn-2.0.104\", is_dev_dep = False),\n struct(repo=\"crate_index__tempfile-3.20.0\", is_dev_dep = False),\n struct(repo=\"crate_index__thiserror-2.0.12\", is_dev_dep = False),\n struct(repo=\"crate_index__tiny-keccak-2.0.2\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-1.47.1\", is_dev_dep = False),\n struct(repo=\"crate_index__typetag-0.2.20\", is_dev_dep = False),\n struct(repo=\"crate_index__zerocopy-0.8.26\", is_dev_dep = False),\n struct(repo=\"crate_index__zeroize-1.8.1\", is_dev_dep = False),\n struct(repo = \"crate_index__indoc-2.0.6\", is_dev_dep = True),\n ]\n" + "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"new_git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"aes\": Label(\"@crate_index//:aes-0.8.4\"),\n \"anstyle\": Label(\"@crate_index//:anstyle-1.0.11\"),\n \"anyhow\": Label(\"@crate_index//:anyhow-1.0.98\"),\n \"arrayvec\": Label(\"@crate_index//:arrayvec-0.7.6\"),\n \"asn1\": Label(\"@crate_index//:asn1-0.22.0\"),\n \"base64\": Label(\"@crate_index//:base64-0.21.7\"),\n \"base64ct\": Label(\"@crate_index//:base64ct-1.8.0\"),\n \"bitflags\": Label(\"@crate_index//:bitflags-2.10.0\"),\n \"byteorder\": Label(\"@crate_index//:byteorder-1.5.0\"),\n \"chrono\": Label(\"@crate_index//:chrono-0.4.41\"),\n \"ciborium\": Label(\"@crate_index//:ciborium-0.2.2\"),\n \"clap\": Label(\"@crate_index//:clap-4.5.48\"),\n \"const-oid\": Label(\"@crate_index//:const-oid-0.9.6\"),\n \"coset\": Label(\"@crate_index//:coset-0.3.8\"),\n \"crc\": Label(\"@crate_index//:crc-3.3.0\"),\n \"cryptoki\": Label(\"@crate_index//:cryptoki-0.12.0\"),\n \"cryptoki-sys\": Label(\"@crate_index//:cryptoki-sys-0.5.0\"),\n \"der\": Label(\"@crate_index//:der-0.7.10\"),\n \"deser-hjson\": Label(\"@crate_index//:deser-hjson-2.2.4\"),\n \"directories\": Label(\"@crate_index//:directories-6.0.0\"),\n \"ecdsa\": Label(\"@crate_index//:ecdsa-0.16.9\"),\n \"elliptic-curve\": Label(\"@crate_index//:elliptic-curve-0.13.8\"),\n \"embedded-hal\": Label(\"@crate_index//:embedded-hal-1.0.0\"),\n \"env_logger\": Label(\"@crate_index//:env_logger-0.11.8\"),\n \"erased-serde\": Label(\"@crate_index//:erased-serde-0.4.6\"),\n \"foreign-types\": Label(\"@crate_index//:foreign-types-0.3.2\"),\n \"ftdi\": Label(\"@crate_index//:ftdi-0.1.3\"),\n \"ftdi-embedded-hal\": Label(\"@crate_index//:ftdi-embedded-hal-0.23.2\"),\n \"ftdi-mpsse\": Label(\"@crate_index//:ftdi-mpsse-0.1.2\"),\n \"heck\": Label(\"@crate_index//:heck-0.5.0\"),\n \"hex\": Label(\"@crate_index//:hex-0.4.3\"),\n \"hmac\": Label(\"@crate_index//:hmac-0.12.1\"),\n \"humantime\": Label(\"@crate_index//:humantime-2.2.0\"),\n \"humantime-serde\": Label(\"@crate_index//:humantime-serde-1.1.1\"),\n \"indexmap\": Label(\"@crate_index//:indexmap-2.10.0\"),\n \"indicatif\": Label(\"@crate_index//:indicatif-0.18.0\"),\n \"inventory\": Label(\"@crate_index//:inventory-0.3.20\"),\n \"itertools\": Label(\"@crate_index//:itertools-0.14.0\"),\n \"libloading\": Label(\"@crate_index//:libloading-0.8.9\"),\n \"log\": Label(\"@crate_index//:log-0.4.29\"),\n \"memchr\": Label(\"@crate_index//:memchr-2.7.5\"),\n \"ml-dsa\": Label(\"@crate_index//:ml-dsa-0.0.4\"),\n \"num-bigint-dig\": Label(\"@crate_index//:num-bigint-dig-0.8.4\"),\n \"num-traits\": Label(\"@crate_index//:num-traits-0.2.19\"),\n \"object\": Label(\"@crate_index//:object-0.36.7\"),\n \"once_cell\": Label(\"@crate_index//:once_cell-1.21.3\"),\n \"openssl\": Label(\"@crate_index//:openssl-0.10.73\"),\n \"openssl-sys\": Label(\"@crate_index//:openssl-sys-0.9.109\"),\n \"p256\": Label(\"@crate_index//:p256-0.13.2\"),\n \"p384\": Label(\"@crate_index//:p384-0.13.1\"),\n \"pem-rfc7468\": Label(\"@crate_index//:pem-rfc7468-0.7.0\"),\n \"pest\": Label(\"@crate_index//:pest-2.8.1\"),\n \"pkcs8\": Label(\"@crate_index//:pkcs8-0.10.2\"),\n \"proc-macro2\": Label(\"@crate_index//:proc-macro2-1.0.95\"),\n \"quote\": Label(\"@crate_index//:quote-1.0.40\"),\n \"rand\": Label(\"@crate_index//:rand-0.8.5\"),\n \"rand_chacha\": Label(\"@crate_index//:rand_chacha-0.3.1\"),\n \"regex\": Label(\"@crate_index//:regex-1.11.1\"),\n \"reqwest\": Label(\"@crate_index//:reqwest-0.12.24\"),\n \"rsa\": Label(\"@crate_index//:rsa-0.9.8\"),\n \"rusb\": Label(\"@crate_index//:rusb-0.9.4\"),\n \"rustix\": Label(\"@crate_index//:rustix-1.0.8\"),\n \"scopeguard\": Label(\"@crate_index//:scopeguard-1.2.0\"),\n \"serde\": Label(\"@crate_index//:serde-1.0.228\"),\n \"serde_bytes\": Label(\"@crate_index//:serde_bytes-0.11.17\"),\n \"serde_json\": Label(\"@crate_index//:serde_json-1.0.142\"),\n \"serde_with\": Label(\"@crate_index//:serde_with-3.14.0\"),\n \"serialport\": Label(\"@crate_index//:serialport-4.7.2\"),\n \"sha2\": Label(\"@crate_index//:sha2-0.10.9\"),\n \"sha3\": Label(\"@crate_index//:sha3-0.10.8\"),\n \"shellwords\": Label(\"@crate_index//:shellwords-1.1.0\"),\n \"signature\": Label(\"@crate_index//:signature-2.2.0\"),\n \"spki\": Label(\"@crate_index//:spki-0.7.3\"),\n \"strum\": Label(\"@crate_index//:strum-0.27.2\"),\n \"syn\": Label(\"@crate_index//:syn-2.0.104\"),\n \"tempfile\": Label(\"@crate_index//:tempfile-3.20.0\"),\n \"thiserror\": Label(\"@crate_index//:thiserror-2.0.12\"),\n \"tiny-keccak\": Label(\"@crate_index//:tiny-keccak-2.0.2\"),\n \"tokio\": Label(\"@crate_index//:tokio-1.47.1\"),\n \"typetag\": Label(\"@crate_index//:typetag-0.2.20\"),\n \"x509-cert\": Label(\"@crate_index//:x509-cert-0.2.5\"),\n \"zerocopy\": Label(\"@crate_index//:zerocopy-0.8.26\"),\n \"zeroize\": Label(\"@crate_index//:zeroize-1.8.1\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"paste\": Label(\"@crate_index//:paste-1.0.15\"),\n \"pest_derive\": Label(\"@crate_index//:pest_derive-2.8.1\"),\n },\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"third_party/rust\": {\n _COMMON_CONDITION: {\n \"indoc\": Label(\"@crate_index//:indoc-2.0.6\"),\n },\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"third_party/rust\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"third_party/rust\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-linux-android\": [],\n \"aarch64-pc-windows-gnullvm\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(any(target_os = \\\"android\\\", target_os = \\\"linux\\\"), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(not(rustix_use_libc), not(miri), target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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-unknown-linux-gnu\"],\n \"cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = \\\"linux\\\", any(target_endian = \\\"little\\\", any(target_arch = \\\"s390x\\\", target_arch = \\\"powerpc\\\")), any(target_arch = \\\"arm\\\", all(target_arch = \\\"aarch64\\\", target_pointer_width = \\\"64\\\"), target_arch = \\\"riscv64\\\", all(rustix_use_experimental_asm, target_arch = \\\"powerpc\\\"), all(rustix_use_experimental_asm, target_arch = \\\"powerpc64\\\"), all(rustix_use_experimental_asm, target_arch = \\\"s390x\\\"), 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\\\")))))))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_vendor = \\\"apple\\\"))\": [],\n \"cfg(all(target_arch = \\\"loongarch64\\\", target_os = \\\"linux\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_family = \\\"wasm\\\", target_os = \\\"unknown\\\"))\": [],\n \"cfg(all(target_os = \\\"linux\\\", not(target_env = \\\"musl\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\": [],\n \"cfg(all(tokio_uring, target_os = \\\"linux\\\"))\": [],\n \"cfg(all(windows, target_env = \\\"msvc\\\"))\": [],\n \"cfg(any())\": [],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86\\\", target_arch = \\\"x86_64\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(target_arch = \\\"aarch64\\\", target_arch = \\\"x86_64\\\", target_arch = \\\"x86\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\": [],\n \"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"macos\\\"))\": [],\n \"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"ios\\\"))\": [],\n \"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\": [],\n \"cfg(any(unix, target_os = \\\"wasi\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(any(windows, target_os = \\\"cygwin\\\"))\": [],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(all(windows, target_env = \\\"msvc\\\", not(target_vendor = \\\"uwp\\\"))))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(any(target_os = \\\"windows\\\", target_vendor = \\\"apple\\\")))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_arch = \\\"wasm32\\\"))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(not(target_has_atomic = \\\"ptr\\\"))\": [],\n \"cfg(target_arch = \\\"aarch64\\\")\": [],\n \"cfg(target_arch = \\\"spirv\\\")\": [],\n \"cfg(target_arch = \\\"wasm32\\\")\": [],\n \"cfg(target_family = \\\"wasm\\\")\": [],\n \"cfg(target_feature = \\\"atomics\\\")\": [],\n \"cfg(target_os = \\\"android\\\")\": [],\n \"cfg(target_os = \\\"haiku\\\")\": [],\n \"cfg(target_os = \\\"hermit\\\")\": [],\n \"cfg(target_os = \\\"macos\\\")\": [],\n \"cfg(target_os = \\\"netbsd\\\")\": [],\n \"cfg(target_os = \\\"redox\\\")\": [],\n \"cfg(target_os = \\\"solaris\\\")\": [],\n \"cfg(target_os = \\\"vxworks\\\")\": [],\n \"cfg(target_os = \\\"wasi\\\")\": [],\n \"cfg(target_os = \\\"windows\\\")\": [],\n \"cfg(target_vendor = \\\"apple\\\")\": [],\n \"cfg(tokio_taskdump)\": [],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"cfg(windows)\": [],\n \"cfg(windows_raw_dylib)\": [],\n \"i686-pc-windows-gnu\": [],\n \"i686-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-gnu\": [],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crate_index__addr2line-0.24.2\",\n sha256 = \"dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/addr2line/0.24.2/download\"],\n strip_prefix = \"addr2line-0.24.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.addr2line-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__adler2-2.0.1\",\n sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n strip_prefix = \"adler2-2.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.adler2-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aes-0.8.4\",\n sha256 = \"b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aes/0.8.4/download\"],\n strip_prefix = \"aes-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aes-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__aho-corasick-1.1.3\",\n sha256 = \"8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.3/download\"],\n strip_prefix = \"aho-corasick-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.aho-corasick-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__android-tzdata-0.1.1\",\n sha256 = \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android-tzdata/0.1.1/download\"],\n strip_prefix = \"android-tzdata-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.android-tzdata-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__android_system_properties-0.1.5\",\n sha256 = \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/android_system_properties/0.1.5/download\"],\n strip_prefix = \"android_system_properties-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.android_system_properties-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstream-0.6.20\",\n sha256 = \"3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstream/0.6.20/download\"],\n strip_prefix = \"anstream-0.6.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstream-0.6.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-1.0.11\",\n sha256 = \"862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle/1.0.11/download\"],\n strip_prefix = \"anstyle-1.0.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-1.0.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-parse-0.2.7\",\n sha256 = \"4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-parse/0.2.7/download\"],\n strip_prefix = \"anstyle-parse-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-parse-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-query-1.1.4\",\n sha256 = \"9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-query/1.1.4/download\"],\n strip_prefix = \"anstyle-query-1.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-query-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anstyle-wincon-3.0.10\",\n sha256 = \"3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anstyle-wincon/3.0.10/download\"],\n strip_prefix = \"anstyle-wincon-3.0.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anstyle-wincon-3.0.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__anyhow-1.0.98\",\n sha256 = \"e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/anyhow/1.0.98/download\"],\n strip_prefix = \"anyhow-1.0.98\",\n build_file = Label(\"@crate_index//crate_index:BUILD.anyhow-1.0.98.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__arrayvec-0.7.6\",\n sha256 = \"7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/arrayvec/0.7.6/download\"],\n strip_prefix = \"arrayvec-0.7.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.arrayvec-0.7.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__asn1-0.22.0\",\n sha256 = \"df42c2b01c5e1060b8281f67b4e5fb858260694916a667345a7305cd11e5dbfa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1/0.22.0/download\"],\n strip_prefix = \"asn1-0.22.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.asn1-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__asn1_derive-0.22.0\",\n sha256 = \"cdccf849b54365e3693e9a90ad36e4482b79937e6373ac8e2cf229c985187b21\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/asn1_derive/0.22.0/download\"],\n strip_prefix = \"asn1_derive-0.22.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.asn1_derive-0.22.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__atomic-waker-1.1.2\",\n sha256 = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/atomic-waker/1.1.2/download\"],\n strip_prefix = \"atomic-waker-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.atomic-waker-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__autocfg-1.5.0\",\n sha256 = \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.0/download\"],\n strip_prefix = \"autocfg-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.autocfg-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__backtrace-0.3.75\",\n sha256 = \"6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/backtrace/0.3.75/download\"],\n strip_prefix = \"backtrace-0.3.75\",\n build_file = Label(\"@crate_index//crate_index:BUILD.backtrace-0.3.75.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base16ct-0.2.0\",\n sha256 = \"4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base16ct/0.2.0/download\"],\n strip_prefix = \"base16ct-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base16ct-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.21.7\",\n sha256 = \"9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.21.7/download\"],\n strip_prefix = \"base64-0.21.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.21.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__base64ct-1.8.0\",\n sha256 = \"55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64ct/1.8.0/download\"],\n strip_prefix = \"base64ct-1.8.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.base64ct-1.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-1.3.2\",\n sha256 = \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/1.3.2/download\"],\n strip_prefix = \"bitflags-1.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-1.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bitflags-2.10.0\",\n sha256 = \"812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.10.0/download\"],\n strip_prefix = \"bitflags-2.10.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bitflags-2.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__block-buffer-0.10.4\",\n sha256 = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/block-buffer/0.10.4/download\"],\n strip_prefix = \"block-buffer-0.10.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.block-buffer-0.10.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bumpalo-3.19.0\",\n sha256 = \"46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.19.0/download\"],\n strip_prefix = \"bumpalo-3.19.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bumpalo-3.19.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__byteorder-1.5.0\",\n sha256 = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/byteorder/1.5.0/download\"],\n strip_prefix = \"byteorder-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.byteorder-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__bytes-1.10.1\",\n sha256 = \"d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.10.1/download\"],\n strip_prefix = \"bytes-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.bytes-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cc-1.2.31\",\n sha256 = \"c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.31/download\"],\n strip_prefix = \"cc-1.2.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cc-1.2.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cfg-if-1.0.1\",\n sha256 = \"9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.1/download\"],\n strip_prefix = \"cfg-if-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cfg-if-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__chrono-0.4.41\",\n sha256 = \"c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/chrono/0.4.41/download\"],\n strip_prefix = \"chrono-0.4.41\",\n build_file = Label(\"@crate_index//crate_index:BUILD.chrono-0.4.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-0.2.2\",\n sha256 = \"42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium/0.2.2/download\"],\n strip_prefix = \"ciborium-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-io-0.2.2\",\n sha256 = \"05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-io/0.2.2/download\"],\n strip_prefix = \"ciborium-io-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-io-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ciborium-ll-0.2.2\",\n sha256 = \"57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ciborium-ll/0.2.2/download\"],\n strip_prefix = \"ciborium-ll-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ciborium-ll-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cipher-0.4.4\",\n sha256 = \"773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cipher/0.4.4/download\"],\n strip_prefix = \"cipher-0.4.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cipher-0.4.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap-4.5.48\",\n sha256 = \"e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap/4.5.48/download\"],\n strip_prefix = \"clap-4.5.48\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap-4.5.48.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_builder-4.5.48\",\n sha256 = \"c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_builder/4.5.48/download\"],\n strip_prefix = \"clap_builder-4.5.48\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_builder-4.5.48.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_derive-4.5.47\",\n sha256 = \"bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_derive/4.5.47/download\"],\n strip_prefix = \"clap_derive-4.5.47\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_derive-4.5.47.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__clap_lex-0.7.5\",\n sha256 = \"b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/clap_lex/0.7.5/download\"],\n strip_prefix = \"clap_lex-0.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.clap_lex-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__colorchoice-1.0.4\",\n sha256 = \"b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/colorchoice/1.0.4/download\"],\n strip_prefix = \"colorchoice-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.colorchoice-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__console-0.16.0\",\n sha256 = \"2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/console/0.16.0/download\"],\n strip_prefix = \"console-0.16.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.console-0.16.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__const-oid-0.9.6\",\n sha256 = \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/const-oid/0.9.6/download\"],\n strip_prefix = \"const-oid-0.9.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.const-oid-0.9.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-0.10.1\",\n sha256 = \"b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.10.1/download\"],\n strip_prefix = \"core-foundation-0.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-0.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-0.9.4\",\n sha256 = \"91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation/0.9.4/download\"],\n strip_prefix = \"core-foundation-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__core-foundation-sys-0.8.7\",\n sha256 = \"773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/core-foundation-sys/0.8.7/download\"],\n strip_prefix = \"core-foundation-sys-0.8.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.core-foundation-sys-0.8.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__coset-0.3.8\",\n sha256 = \"f4c8cc80f631f8307b887faca24dcc3abc427cd0367f6eb6188f6e8f5b7ad8fb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/coset/0.3.8/download\"],\n strip_prefix = \"coset-0.3.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.coset-0.3.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cpufeatures-0.2.17\",\n sha256 = \"59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cpufeatures/0.2.17/download\"],\n strip_prefix = \"cpufeatures-0.2.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cpufeatures-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc-3.3.0\",\n sha256 = \"9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc/3.3.0/download\"],\n strip_prefix = \"crc-3.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc-3.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc-catalog-2.4.0\",\n sha256 = \"19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc-catalog/2.4.0/download\"],\n strip_prefix = \"crc-catalog-2.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc-catalog-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crc32fast-1.5.0\",\n sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n strip_prefix = \"crc32fast-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crc32fast-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crunchy-0.2.4\",\n sha256 = \"460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crunchy/0.2.4/download\"],\n strip_prefix = \"crunchy-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crunchy-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crypto-bigint-0.5.5\",\n sha256 = \"0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-bigint/0.5.5/download\"],\n strip_prefix = \"crypto-bigint-0.5.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crypto-bigint-0.5.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__crypto-common-0.1.6\",\n sha256 = \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crypto-common/0.1.6/download\"],\n strip_prefix = \"crypto-common-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.crypto-common-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cryptoki-0.12.0\",\n sha256 = \"ff765b99fc49f3116c9a908484486a2b92fd73c48da45c3a69716471c6cc56c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cryptoki/0.12.0/download\"],\n strip_prefix = \"cryptoki-0.12.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cryptoki-0.12.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__cryptoki-sys-0.5.0\",\n sha256 = \"f1fd850498411e4057f1cba79e6e2bc7cbe960544c1046ab46d4685c403a1121\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cryptoki-sys/0.5.0/download\"],\n strip_prefix = \"cryptoki-sys-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.cryptoki-sys-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling-0.20.11\",\n sha256 = \"fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling/0.20.11/download\"],\n strip_prefix = \"darling-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling_core-0.20.11\",\n sha256 = \"0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_core/0.20.11/download\"],\n strip_prefix = \"darling_core-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling_core-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__darling_macro-0.20.11\",\n sha256 = \"fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/darling_macro/0.20.11/download\"],\n strip_prefix = \"darling_macro-0.20.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.darling_macro-0.20.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__der-0.7.10\",\n sha256 = \"e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/der/0.7.10/download\"],\n strip_prefix = \"der-0.7.10\",\n build_file = Label(\"@crate_index//crate_index:BUILD.der-0.7.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__der_derive-0.7.3\",\n sha256 = \"8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/der_derive/0.7.3/download\"],\n strip_prefix = \"der_derive-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.der_derive-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deranged-0.4.0\",\n sha256 = \"9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deranged/0.4.0/download\"],\n strip_prefix = \"deranged-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deranged-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__deser-hjson-2.2.4\",\n sha256 = \"7d94aac4095c08ded7e4b9ba7fc2b2929f11b94bb96897ca188b0f64e01688e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/deser-hjson/2.2.4/download\"],\n strip_prefix = \"deser-hjson-2.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.deser-hjson-2.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__digest-0.10.7\",\n sha256 = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/digest/0.10.7/download\"],\n strip_prefix = \"digest-0.10.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.digest-0.10.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__directories-6.0.0\",\n sha256 = \"16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/directories/6.0.0/download\"],\n strip_prefix = \"directories-6.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.directories-6.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dirs-sys-0.5.0\",\n sha256 = \"e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dirs-sys/0.5.0/download\"],\n strip_prefix = \"dirs-sys-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dirs-sys-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__displaydoc-0.2.5\",\n sha256 = \"97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/displaydoc/0.2.5/download\"],\n strip_prefix = \"displaydoc-0.2.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.displaydoc-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__dyn-clone-1.0.20\",\n sha256 = \"d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/dyn-clone/1.0.20/download\"],\n strip_prefix = \"dyn-clone-1.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.dyn-clone-1.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ecdsa-0.16.9\",\n sha256 = \"ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ecdsa/0.16.9/download\"],\n strip_prefix = \"ecdsa-0.16.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ecdsa-0.16.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__either-1.15.0\",\n sha256 = \"48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/either/1.15.0/download\"],\n strip_prefix = \"either-1.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.either-1.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__elliptic-curve-0.13.8\",\n sha256 = \"b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/elliptic-curve/0.13.8/download\"],\n strip_prefix = \"elliptic-curve-0.13.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.elliptic-curve-0.13.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-0.2.7\",\n sha256 = \"35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal/0.2.7/download\"],\n strip_prefix = \"embedded-hal-0.2.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-0.2.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-1.0.0\",\n sha256 = \"361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal/1.0.0/download\"],\n strip_prefix = \"embedded-hal-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__embedded-hal-nb-1.0.0\",\n sha256 = \"fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/embedded-hal-nb/1.0.0/download\"],\n strip_prefix = \"embedded-hal-nb-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.embedded-hal-nb-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encode_unicode-1.0.0\",\n sha256 = \"34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encode_unicode/1.0.0/download\"],\n strip_prefix = \"encode_unicode-1.0.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encode_unicode-1.0.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__encoding_rs-0.8.35\",\n sha256 = \"75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/encoding_rs/0.8.35/download\"],\n strip_prefix = \"encoding_rs-0.8.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.encoding_rs-0.8.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_filter-0.1.3\",\n sha256 = \"186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_filter/0.1.3/download\"],\n strip_prefix = \"env_filter-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_filter-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__env_logger-0.11.8\",\n sha256 = \"13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/env_logger/0.11.8/download\"],\n strip_prefix = \"env_logger-0.11.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.env_logger-0.11.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__equivalent-1.0.2\",\n sha256 = \"877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/equivalent/1.0.2/download\"],\n strip_prefix = \"equivalent-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.equivalent-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__erased-serde-0.4.6\",\n sha256 = \"e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/erased-serde/0.4.6/download\"],\n strip_prefix = \"erased-serde-0.4.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.erased-serde-0.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__errno-0.3.13\",\n sha256 = \"778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/errno/0.3.13/download\"],\n strip_prefix = \"errno-0.3.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.errno-0.3.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fastrand-2.3.0\",\n sha256 = \"37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fastrand/2.3.0/download\"],\n strip_prefix = \"fastrand-2.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fastrand-2.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ff-0.13.1\",\n sha256 = \"c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ff/0.13.1/download\"],\n strip_prefix = \"ff-0.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ff-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__flagset-0.4.7\",\n sha256 = \"b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flagset/0.4.7/download\"],\n strip_prefix = \"flagset-0.4.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.flagset-0.4.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__flate2-1.1.2\",\n sha256 = \"4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.1.2/download\"],\n strip_prefix = \"flate2-1.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.flate2-1.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__fnv-1.0.7\",\n sha256 = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/fnv/1.0.7/download\"],\n strip_prefix = \"fnv-1.0.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.fnv-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foreign-types-0.3.2\",\n sha256 = \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types/0.3.2/download\"],\n strip_prefix = \"foreign-types-0.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foreign-types-0.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__foreign-types-shared-0.1.1\",\n sha256 = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/foreign-types-shared/0.1.1/download\"],\n strip_prefix = \"foreign-types-shared-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.foreign-types-shared-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__form_urlencoded-1.2.2\",\n sha256 = \"cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/form_urlencoded/1.2.2/download\"],\n strip_prefix = \"form_urlencoded-1.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.form_urlencoded-1.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-0.1.3\",\n sha256 = \"2f9c8c625c6b8634ce70cd8cbb2ab8a103e4c2b4185c86d9954d2e16b1ef7c4a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi/0.1.3/download\"],\n strip_prefix = \"ftdi-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-embedded-hal-0.23.2\",\n sha256 = \"0fe355bc850d50b44519d42f875b788e6cb01fd52e4a6292250b23b29d6d5d8e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi-embedded-hal/0.23.2/download\"],\n strip_prefix = \"ftdi-embedded-hal-0.23.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-embedded-hal-0.23.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ftdi-mpsse-0.1.2\",\n sha256 = \"5dd2c246fb727197d284bf7273718ed6b1c9a94a128bb618b97f13daec658a12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ftdi-mpsse/0.1.2/download\"],\n strip_prefix = \"ftdi-mpsse-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ftdi-mpsse-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-channel-0.3.31\",\n sha256 = \"2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-channel/0.3.31/download\"],\n strip_prefix = \"futures-channel-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-channel-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-core-0.3.31\",\n sha256 = \"05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-core/0.3.31/download\"],\n strip_prefix = \"futures-core-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-core-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-io-0.3.31\",\n sha256 = \"9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-io/0.3.31/download\"],\n strip_prefix = \"futures-io-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-io-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-sink-0.3.31\",\n sha256 = \"e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-sink/0.3.31/download\"],\n strip_prefix = \"futures-sink-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-sink-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-task-0.3.31\",\n sha256 = \"f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-task/0.3.31/download\"],\n strip_prefix = \"futures-task-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-task-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__futures-util-0.3.31\",\n sha256 = \"9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/futures-util/0.3.31/download\"],\n strip_prefix = \"futures-util-0.3.31\",\n build_file = Label(\"@crate_index//crate_index:BUILD.futures-util-0.3.31.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__generic-array-0.14.7\",\n sha256 = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/generic-array/0.14.7/download\"],\n strip_prefix = \"generic-array-0.14.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.generic-array-0.14.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.2.16\",\n sha256 = \"335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.16/download\"],\n strip_prefix = \"getrandom-0.2.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__getrandom-0.3.3\",\n sha256 = \"26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.3.3/download\"],\n strip_prefix = \"getrandom-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.getrandom-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__gimli-0.31.1\",\n sha256 = \"07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/gimli/0.31.1/download\"],\n strip_prefix = \"gimli-0.31.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.gimli-0.31.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__group-0.13.0\",\n sha256 = \"f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/group/0.13.0/download\"],\n strip_prefix = \"group-0.13.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.group-0.13.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__h2-0.4.12\",\n sha256 = \"f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/h2/0.4.12/download\"],\n strip_prefix = \"h2-0.4.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.h2-0.4.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__half-2.7.1\",\n sha256 = \"6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/half/2.7.1/download\"],\n strip_prefix = \"half-2.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.half-2.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.12.3\",\n sha256 = \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.12.3/download\"],\n strip_prefix = \"hashbrown-0.12.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hashbrown-0.15.4\",\n sha256 = \"5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hashbrown/0.15.4/download\"],\n strip_prefix = \"hashbrown-0.15.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hashbrown-0.15.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hex-0.4.3\",\n sha256 = \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hex/0.4.3/download\"],\n strip_prefix = \"hex-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hex-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hkdf-0.12.4\",\n sha256 = \"7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hkdf/0.12.4/download\"],\n strip_prefix = \"hkdf-0.12.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hkdf-0.12.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hmac-0.12.1\",\n sha256 = \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hmac/0.12.1/download\"],\n strip_prefix = \"hmac-0.12.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hmac-0.12.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-1.4.0\",\n sha256 = \"e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.0/download\"],\n strip_prefix = \"http-1.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-1.0.1\",\n sha256 = \"1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body/1.0.1/download\"],\n strip_prefix = \"http-body-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__http-body-util-0.1.3\",\n sha256 = \"b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http-body-util/0.1.3/download\"],\n strip_prefix = \"http-body-util-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.http-body-util-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__humantime-2.2.0\",\n sha256 = \"9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime/2.2.0/download\"],\n strip_prefix = \"humantime-2.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.humantime-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__humantime-serde-1.1.1\",\n sha256 = \"57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/humantime-serde/1.1.1/download\"],\n strip_prefix = \"humantime-serde-1.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.humantime-serde-1.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hybrid-array-0.3.1\",\n sha256 = \"891d15931895091dea5c47afa5b3c9a01ba634b311919fd4d41388fa0e3d76af\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hybrid-array/0.3.1/download\"],\n strip_prefix = \"hybrid-array-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hybrid-array-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-1.8.1\",\n sha256 = \"2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper/1.8.1/download\"],\n strip_prefix = \"hyper-1.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-rustls-0.27.7\",\n sha256 = \"e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-rustls/0.27.7/download\"],\n strip_prefix = \"hyper-rustls-0.27.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-rustls-0.27.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-tls-0.6.0\",\n sha256 = \"70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-tls/0.6.0/download\"],\n strip_prefix = \"hyper-tls-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-tls-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__hyper-util-0.1.19\",\n sha256 = \"727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/hyper-util/0.1.19/download\"],\n strip_prefix = \"hyper-util-0.1.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.hyper-util-0.1.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iana-time-zone-0.1.63\",\n sha256 = \"b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone/0.1.63/download\"],\n strip_prefix = \"iana-time-zone-0.1.63\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iana-time-zone-0.1.63.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iana-time-zone-haiku-0.1.2\",\n sha256 = \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iana-time-zone-haiku/0.1.2/download\"],\n strip_prefix = \"iana-time-zone-haiku-0.1.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iana-time-zone-haiku-0.1.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_collections-2.1.1\",\n sha256 = \"4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_collections/2.1.1/download\"],\n strip_prefix = \"icu_collections-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_collections-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_locale_core-2.1.1\",\n sha256 = \"edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_locale_core/2.1.1/download\"],\n strip_prefix = \"icu_locale_core-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_locale_core-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_normalizer-2.1.1\",\n sha256 = \"5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer/2.1.1/download\"],\n strip_prefix = \"icu_normalizer-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_normalizer-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_normalizer_data-2.1.1\",\n sha256 = \"7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_normalizer_data/2.1.1/download\"],\n strip_prefix = \"icu_normalizer_data-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_normalizer_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_properties-2.1.1\",\n sha256 = \"e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties/2.1.1/download\"],\n strip_prefix = \"icu_properties-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_properties-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_properties_data-2.1.1\",\n sha256 = \"02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_properties_data/2.1.1/download\"],\n strip_prefix = \"icu_properties_data-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_properties_data-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__icu_provider-2.1.1\",\n sha256 = \"85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/icu_provider/2.1.1/download\"],\n strip_prefix = \"icu_provider-2.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.icu_provider-2.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ident_case-1.0.1\",\n sha256 = \"b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ident_case/1.0.1/download\"],\n strip_prefix = \"ident_case-1.0.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ident_case-1.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__idna-1.1.0\",\n sha256 = \"3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna/1.1.0/download\"],\n strip_prefix = \"idna-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.idna-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__idna_adapter-1.2.1\",\n sha256 = \"3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/idna_adapter/1.2.1/download\"],\n strip_prefix = \"idna_adapter-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.idna_adapter-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-1.9.3\",\n sha256 = \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/1.9.3/download\"],\n strip_prefix = \"indexmap-1.9.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-1.9.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indexmap-2.10.0\",\n sha256 = \"fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indexmap/2.10.0/download\"],\n strip_prefix = \"indexmap-2.10.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indexmap-2.10.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indicatif-0.18.0\",\n sha256 = \"70a646d946d06bedbbc4cac4c218acf4bbf2d87757a784857025f4d447e4e1cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indicatif/0.18.0/download\"],\n strip_prefix = \"indicatif-0.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indicatif-0.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__indoc-2.0.6\",\n sha256 = \"f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indoc/2.0.6/download\"],\n strip_prefix = \"indoc-2.0.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.indoc-2.0.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__inout-0.1.4\",\n sha256 = \"879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/inout/0.1.4/download\"],\n strip_prefix = \"inout-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.inout-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__inventory-0.3.20\",\n sha256 = \"ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/inventory/0.3.20/download\"],\n strip_prefix = \"inventory-0.3.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.inventory-0.3.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__io-kit-sys-0.4.1\",\n sha256 = \"617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/io-kit-sys/0.4.1/download\"],\n strip_prefix = \"io-kit-sys-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.io-kit-sys-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__io-uring-0.7.9\",\n sha256 = \"d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/io-uring/0.7.9/download\"],\n strip_prefix = \"io-uring-0.7.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.io-uring-0.7.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ipnet-2.11.0\",\n sha256 = \"469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ipnet/2.11.0/download\"],\n strip_prefix = \"ipnet-2.11.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ipnet-2.11.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__iri-string-0.7.9\",\n sha256 = \"4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/iri-string/0.7.9/download\"],\n strip_prefix = \"iri-string-0.7.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.iri-string-0.7.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__is_terminal_polyfill-1.70.1\",\n sha256 = \"7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/is_terminal_polyfill/1.70.1/download\"],\n strip_prefix = \"is_terminal_polyfill-1.70.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.is_terminal_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itertools-0.14.0\",\n sha256 = \"2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itertools/0.14.0/download\"],\n strip_prefix = \"itertools-0.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itertools-0.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__itoa-1.0.15\",\n sha256 = \"4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.15/download\"],\n strip_prefix = \"itoa-1.0.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.itoa-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-0.2.15\",\n sha256 = \"be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff/0.2.15/download\"],\n strip_prefix = \"jiff-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__jiff-static-0.2.15\",\n sha256 = \"03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/jiff-static/0.2.15/download\"],\n strip_prefix = \"jiff-static-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.jiff-static-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__js-sys-0.3.77\",\n sha256 = \"1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/js-sys/0.3.77/download\"],\n strip_prefix = \"js-sys-0.3.77\",\n build_file = Label(\"@crate_index//crate_index:BUILD.js-sys-0.3.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__keccak-0.1.5\",\n sha256 = \"ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/keccak/0.1.5/download\"],\n strip_prefix = \"keccak-0.1.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.keccak-0.1.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lazy_static-1.5.0\",\n sha256 = \"bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lazy_static/1.5.0/download\"],\n strip_prefix = \"lazy_static-1.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lazy_static-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libc-0.2.174\",\n sha256 = \"1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.174/download\"],\n strip_prefix = \"libc-0.2.174\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libc-0.2.174.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libftdi1-sys-1.1.3\",\n sha256 = \"575286f9af093f56c7805f4f94874871b84216d1545f499d2cbad9e370000fe7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libftdi1-sys/1.1.3/download\"],\n strip_prefix = \"libftdi1-sys-1.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libftdi1-sys-1.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libloading-0.8.9\",\n sha256 = \"d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.9/download\"],\n strip_prefix = \"libloading-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libloading-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libm-0.2.15\",\n sha256 = \"f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libm/0.2.15/download\"],\n strip_prefix = \"libm-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libm-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libredox-0.1.9\",\n sha256 = \"391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libredox/0.1.9/download\"],\n strip_prefix = \"libredox-0.1.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libredox-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libudev-0.3.0\",\n sha256 = \"78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libudev/0.3.0/download\"],\n strip_prefix = \"libudev-0.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libudev-0.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libudev-sys-0.1.4\",\n patch_args = [\n \"-p1\",\n ],\n patches = [\n \"@@//third_party/rust/patches:libudev-sys-0.1.4.patch\",\n ],\n sha256 = \"3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libudev-sys/0.1.4/download\"],\n strip_prefix = \"libudev-sys-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libudev-sys-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__libusb1-sys-0.7.0\",\n sha256 = \"da050ade7ac4ff1ba5379af847a10a10a8e284181e060105bf8d86960ce9ce0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libusb1-sys/0.7.0/download\"],\n strip_prefix = \"libusb1-sys-0.7.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.libusb1-sys-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__linux-raw-sys-0.9.4\",\n sha256 = \"cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/linux-raw-sys/0.9.4/download\"],\n strip_prefix = \"linux-raw-sys-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.linux-raw-sys-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__litemap-0.8.1\",\n sha256 = \"6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/litemap/0.8.1/download\"],\n strip_prefix = \"litemap-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.litemap-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__lock_api-0.4.13\",\n sha256 = \"96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/lock_api/0.4.13/download\"],\n strip_prefix = \"lock_api-0.4.13\",\n build_file = Label(\"@crate_index//crate_index:BUILD.lock_api-0.4.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__log-0.4.29\",\n sha256 = \"5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.29/download\"],\n strip_prefix = \"log-0.4.29\",\n build_file = Label(\"@crate_index//crate_index:BUILD.log-0.4.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mach2-0.4.3\",\n sha256 = \"d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mach2/0.4.3/download\"],\n strip_prefix = \"mach2-0.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mach2-0.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__memchr-2.7.5\",\n sha256 = \"32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.7.5/download\"],\n strip_prefix = \"memchr-2.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.memchr-2.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mime-0.3.17\",\n sha256 = \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mime/0.3.17/download\"],\n strip_prefix = \"mime-0.3.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mime-0.3.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__miniz_oxide-0.8.9\",\n sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n strip_prefix = \"miniz_oxide-0.8.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.miniz_oxide-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__mio-1.0.4\",\n sha256 = \"78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/mio/1.0.4/download\"],\n strip_prefix = \"mio-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.mio-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ml-dsa-0.0.4\",\n sha256 = \"ac4a46643af2001eafebcc37031fc459eb72d45057aac5d7a15b00046a2ad6db\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ml-dsa/0.0.4/download\"],\n strip_prefix = \"ml-dsa-0.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ml-dsa-0.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__native-tls-0.2.14\",\n sha256 = \"87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/native-tls/0.2.14/download\"],\n strip_prefix = \"native-tls-0.2.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.native-tls-0.2.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nb-0.1.3\",\n sha256 = \"801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nb/0.1.3/download\"],\n strip_prefix = \"nb-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nb-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nb-1.1.0\",\n sha256 = \"8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nb/1.1.0/download\"],\n strip_prefix = \"nb-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nb-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__nix-0.26.4\",\n sha256 = \"598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/nix/0.26.4/download\"],\n strip_prefix = \"nix-0.26.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.nix-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-bigint-dig-0.8.4\",\n sha256 = \"dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-bigint-dig/0.8.4/download\"],\n strip_prefix = \"num-bigint-dig-0.8.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-bigint-dig-0.8.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-conv-0.1.0\",\n sha256 = \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-conv/0.1.0/download\"],\n strip_prefix = \"num-conv-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-conv-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-integer-0.1.46\",\n sha256 = \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-integer/0.1.46/download\"],\n strip_prefix = \"num-integer-0.1.46\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-integer-0.1.46.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-iter-0.1.45\",\n sha256 = \"1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-iter/0.1.45/download\"],\n strip_prefix = \"num-iter-0.1.45\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-iter-0.1.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__num-traits-0.2.19\",\n sha256 = \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/num-traits/0.2.19/download\"],\n strip_prefix = \"num-traits-0.2.19\",\n build_file = Label(\"@crate_index//crate_index:BUILD.num-traits-0.2.19.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__object-0.36.7\",\n sha256 = \"62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/object/0.36.7/download\"],\n strip_prefix = \"object-0.36.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.object-0.36.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell-1.21.3\",\n sha256 = \"42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.3/download\"],\n strip_prefix = \"once_cell-1.21.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell-1.21.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__once_cell_polyfill-1.70.1\",\n sha256 = \"a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell_polyfill/1.70.1/download\"],\n strip_prefix = \"once_cell_polyfill-1.70.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.once_cell_polyfill-1.70.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-0.10.73\",\n sha256 = \"8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl/0.10.73/download\"],\n strip_prefix = \"openssl-0.10.73\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-0.10.73.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-macros-0.1.1\",\n sha256 = \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-macros/0.1.1/download\"],\n strip_prefix = \"openssl-macros-0.1.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-macros-0.1.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-probe-0.1.6\",\n sha256 = \"d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-probe/0.1.6/download\"],\n strip_prefix = \"openssl-probe-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-probe-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__openssl-sys-0.9.109\",\n sha256 = \"90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/openssl-sys/0.9.109/download\"],\n strip_prefix = \"openssl-sys-0.9.109\",\n build_file = Label(\"@crate_index//crate_index:BUILD.openssl-sys-0.9.109.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__option-ext-0.2.0\",\n sha256 = \"04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/option-ext/0.2.0/download\"],\n strip_prefix = \"option-ext-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.option-ext-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__p256-0.13.2\",\n sha256 = \"c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/p256/0.13.2/download\"],\n strip_prefix = \"p256-0.13.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.p256-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__p384-0.13.1\",\n sha256 = \"fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/p384/0.13.1/download\"],\n strip_prefix = \"p384-0.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.p384-0.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__parking_lot-0.12.4\",\n sha256 = \"70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot/0.12.4/download\"],\n strip_prefix = \"parking_lot-0.12.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.parking_lot-0.12.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__parking_lot_core-0.9.11\",\n sha256 = \"bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/parking_lot_core/0.9.11/download\"],\n strip_prefix = \"parking_lot_core-0.9.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.parking_lot_core-0.9.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__paste-1.0.15\",\n sha256 = \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/paste/1.0.15/download\"],\n strip_prefix = \"paste-1.0.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.paste-1.0.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pem-rfc7468-0.7.0\",\n sha256 = \"88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pem-rfc7468/0.7.0/download\"],\n strip_prefix = \"pem-rfc7468-0.7.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pem-rfc7468-0.7.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest-2.8.1\",\n sha256 = \"1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest/2.8.1/download\"],\n strip_prefix = \"pest-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_derive-2.8.1\",\n sha256 = \"bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_derive/2.8.1/download\"],\n strip_prefix = \"pest_derive-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_derive-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_generator-2.8.1\",\n sha256 = \"87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_generator/2.8.1/download\"],\n strip_prefix = \"pest_generator-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_generator-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pest_meta-2.8.1\",\n sha256 = \"edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pest_meta/2.8.1/download\"],\n strip_prefix = \"pest_meta-2.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pest_meta-2.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-project-lite-0.2.16\",\n sha256 = \"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-project-lite/0.2.16/download\"],\n strip_prefix = \"pin-project-lite-0.2.16\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-project-lite-0.2.16.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pin-utils-0.1.0\",\n sha256 = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pin-utils/0.1.0/download\"],\n strip_prefix = \"pin-utils-0.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pin-utils-0.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkcs1-0.7.5\",\n sha256 = \"c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkcs1/0.7.5/download\"],\n strip_prefix = \"pkcs1-0.7.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkcs1-0.7.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkcs8-0.10.2\",\n sha256 = \"f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkcs8/0.10.2/download\"],\n strip_prefix = \"pkcs8-0.10.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkcs8-0.10.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__pkg-config-0.3.32\",\n sha256 = \"7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pkg-config/0.3.32/download\"],\n strip_prefix = \"pkg-config-0.3.32\",\n build_file = Label(\"@crate_index//crate_index:BUILD.pkg-config-0.3.32.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-1.11.1\",\n sha256 = \"f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.11.1/download\"],\n strip_prefix = \"portable-atomic-1.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__portable-atomic-util-0.2.4\",\n sha256 = \"d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic-util/0.2.4/download\"],\n strip_prefix = \"portable-atomic-util-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.portable-atomic-util-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__potential_utf-0.1.4\",\n sha256 = \"b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/potential_utf/0.1.4/download\"],\n strip_prefix = \"potential_utf-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.potential_utf-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__powerfmt-0.2.0\",\n sha256 = \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/powerfmt/0.2.0/download\"],\n strip_prefix = \"powerfmt-0.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.powerfmt-0.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ppv-lite86-0.2.21\",\n sha256 = \"85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ppv-lite86/0.2.21/download\"],\n strip_prefix = \"ppv-lite86-0.2.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ppv-lite86-0.2.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__primeorder-0.13.6\",\n sha256 = \"353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/primeorder/0.13.6/download\"],\n strip_prefix = \"primeorder-0.13.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.primeorder-0.13.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__proc-macro2-1.0.95\",\n sha256 = \"02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.95/download\"],\n strip_prefix = \"proc-macro2-1.0.95\",\n build_file = Label(\"@crate_index//crate_index:BUILD.proc-macro2-1.0.95.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__quote-1.0.40\",\n sha256 = \"1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.40/download\"],\n strip_prefix = \"quote-1.0.40\",\n build_file = Label(\"@crate_index//crate_index:BUILD.quote-1.0.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__r-efi-5.3.0\",\n sha256 = \"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/r-efi/5.3.0/download\"],\n strip_prefix = \"r-efi-5.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.r-efi-5.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand-0.8.5\",\n sha256 = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand/0.8.5/download\"],\n strip_prefix = \"rand-0.8.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_chacha-0.3.1\",\n sha256 = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_chacha/0.3.1/download\"],\n strip_prefix = \"rand_chacha-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_chacha-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rand_core-0.6.4\",\n sha256 = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rand_core/0.6.4/download\"],\n strip_prefix = \"rand_core-0.6.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rand_core-0.6.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__redox_syscall-0.5.17\",\n sha256 = \"5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_syscall/0.5.17/download\"],\n strip_prefix = \"redox_syscall-0.5.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.redox_syscall-0.5.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__redox_users-0.5.2\",\n sha256 = \"a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/redox_users/0.5.2/download\"],\n strip_prefix = \"redox_users-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.redox_users-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ref-cast-1.0.24\",\n sha256 = \"4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast/1.0.24/download\"],\n strip_prefix = \"ref-cast-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ref-cast-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ref-cast-impl-1.0.24\",\n sha256 = \"1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ref-cast-impl/1.0.24/download\"],\n strip_prefix = \"ref-cast-impl-1.0.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ref-cast-impl-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-1.11.1\",\n sha256 = \"b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.11.1/download\"],\n strip_prefix = \"regex-1.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-automata-0.4.9\",\n sha256 = \"809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.9/download\"],\n strip_prefix = \"regex-automata-0.4.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-automata-0.4.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__regex-syntax-0.8.5\",\n sha256 = \"2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.5/download\"],\n strip_prefix = \"regex-syntax-0.8.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.regex-syntax-0.8.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__reqwest-0.12.24\",\n sha256 = \"9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/reqwest/0.12.24/download\"],\n strip_prefix = \"reqwest-0.12.24\",\n build_file = Label(\"@crate_index//crate_index:BUILD.reqwest-0.12.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rfc6979-0.4.0\",\n sha256 = \"f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rfc6979/0.4.0/download\"],\n strip_prefix = \"rfc6979-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rfc6979-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rsa-0.9.8\",\n sha256 = \"78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rsa/0.9.8/download\"],\n strip_prefix = \"rsa-0.9.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rsa-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rusb-0.9.4\",\n sha256 = \"ab9f9ff05b63a786553a4c02943b74b34a988448671001e9a27e2f0565cc05a4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rusb/0.9.4/download\"],\n strip_prefix = \"rusb-0.9.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rusb-0.9.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustc-demangle-0.1.26\",\n sha256 = \"56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustc-demangle/0.1.26/download\"],\n strip_prefix = \"rustc-demangle-0.1.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustc-demangle-0.1.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustix-1.0.8\",\n sha256 = \"11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustix/1.0.8/download\"],\n strip_prefix = \"rustix-1.0.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustix-1.0.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-0.23.35\",\n sha256 = \"533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.35/download\"],\n strip_prefix = \"rustls-0.23.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-0.23.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-pki-types-1.13.1\",\n sha256 = \"708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.13.1/download\"],\n strip_prefix = \"rustls-pki-types-1.13.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-pki-types-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustls-webpki-0.103.8\",\n sha256 = \"2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.8/download\"],\n strip_prefix = \"rustls-webpki-0.103.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustls-webpki-0.103.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__rustversion-1.0.21\",\n sha256 = \"8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.21/download\"],\n strip_prefix = \"rustversion-1.0.21\",\n build_file = Label(\"@crate_index//crate_index:BUILD.rustversion-1.0.21.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ruzstd-0.7.3\",\n sha256 = \"fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ruzstd/0.7.3/download\"],\n strip_prefix = \"ruzstd-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ruzstd-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ryu-1.0.20\",\n sha256 = \"28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ryu/1.0.20/download\"],\n strip_prefix = \"ryu-1.0.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ryu-1.0.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schannel-0.1.28\",\n sha256 = \"891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schannel/0.1.28/download\"],\n strip_prefix = \"schannel-0.1.28\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schannel-0.1.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schemars-0.9.0\",\n sha256 = \"4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schemars/0.9.0/download\"],\n strip_prefix = \"schemars-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schemars-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__schemars-1.0.4\",\n sha256 = \"82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/schemars/1.0.4/download\"],\n strip_prefix = \"schemars-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.schemars-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__scopeguard-1.2.0\",\n sha256 = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/scopeguard/1.2.0/download\"],\n strip_prefix = \"scopeguard-1.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.scopeguard-1.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sec1-0.7.3\",\n sha256 = \"d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sec1/0.7.3/download\"],\n strip_prefix = \"sec1-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sec1-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__secrecy-0.10.3\",\n sha256 = \"e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/secrecy/0.10.3/download\"],\n strip_prefix = \"secrecy-0.10.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.secrecy-0.10.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__security-framework-2.11.1\",\n sha256 = \"897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework/2.11.1/download\"],\n strip_prefix = \"security-framework-2.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.security-framework-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__security-framework-sys-2.15.0\",\n sha256 = \"cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/security-framework-sys/2.15.0/download\"],\n strip_prefix = \"security-framework-sys-2.15.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.security-framework-sys-2.15.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde-1.0.228\",\n sha256 = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.228/download\"],\n strip_prefix = \"serde-1.0.228\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_bytes-0.11.17\",\n sha256 = \"8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_bytes/0.11.17/download\"],\n strip_prefix = \"serde_bytes-0.11.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_bytes-0.11.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_core-1.0.228\",\n sha256 = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_core/1.0.228/download\"],\n strip_prefix = \"serde_core-1.0.228\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_core-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_derive-1.0.228\",\n sha256 = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.228/download\"],\n strip_prefix = \"serde_derive-1.0.228\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_derive-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_json-1.0.142\",\n sha256 = \"030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.142/download\"],\n strip_prefix = \"serde_json-1.0.142\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_json-1.0.142.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_urlencoded-0.7.1\",\n sha256 = \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_urlencoded/0.7.1/download\"],\n strip_prefix = \"serde_urlencoded-0.7.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_urlencoded-0.7.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_with-3.14.0\",\n sha256 = \"f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_with/3.14.0/download\"],\n strip_prefix = \"serde_with-3.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_with-3.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serde_with_macros-3.14.0\",\n sha256 = \"de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_with_macros/3.14.0/download\"],\n strip_prefix = \"serde_with_macros-3.14.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serde_with_macros-3.14.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__serialport-4.7.2\",\n sha256 = \"cdb0bc984f6af6ef8bab54e6cf2071579ee75b9286aa9f2319a0d220c28b0a2b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serialport/4.7.2/download\"],\n strip_prefix = \"serialport-4.7.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.serialport-4.7.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sha1-0.10.6\",\n sha256 = \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha1/0.10.6/download\"],\n strip_prefix = \"sha1-0.10.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sha1-0.10.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sha2-0.10.9\",\n sha256 = \"a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha2/0.10.9/download\"],\n strip_prefix = \"sha2-0.10.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sha2-0.10.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sha3-0.10.8\",\n sha256 = \"75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sha3/0.10.8/download\"],\n strip_prefix = \"sha3-0.10.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sha3-0.10.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shellwords-1.1.0\",\n sha256 = \"89e515aa4699a88148ed5ef96413ceef0048ce95b43fbc955a33bde0a70fcae6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shellwords/1.1.0/download\"],\n strip_prefix = \"shellwords-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shellwords-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signal-hook-registry-1.4.6\",\n sha256 = \"b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signal-hook-registry/1.4.6/download\"],\n strip_prefix = \"signal-hook-registry-1.4.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signal-hook-registry-1.4.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__signature-2.2.0\",\n sha256 = \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/signature/2.2.0/download\"],\n strip_prefix = \"signature-2.2.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.signature-2.2.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__slab-0.4.11\",\n sha256 = \"7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/slab/0.4.11/download\"],\n strip_prefix = \"slab-0.4.11\",\n build_file = Label(\"@crate_index//crate_index:BUILD.slab-0.4.11.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__smallvec-1.15.1\",\n sha256 = \"67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/smallvec/1.15.1/download\"],\n strip_prefix = \"smallvec-1.15.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.smallvec-1.15.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__socket2-0.6.0\",\n sha256 = \"233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/socket2/0.6.0/download\"],\n strip_prefix = \"socket2-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.socket2-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spin-0.9.8\",\n sha256 = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spin/0.9.8/download\"],\n strip_prefix = \"spin-0.9.8\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spin-0.9.8.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__spki-0.7.3\",\n sha256 = \"d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/spki/0.7.3/download\"],\n strip_prefix = \"spki-0.7.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.spki-0.7.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__stable_deref_trait-1.2.1\",\n sha256 = \"6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/stable_deref_trait/1.2.1/download\"],\n strip_prefix = \"stable_deref_trait-1.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.stable_deref_trait-1.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__static_assertions-1.1.0\",\n sha256 = \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/static_assertions/1.1.0/download\"],\n strip_prefix = \"static_assertions-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.static_assertions-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strsim-0.11.1\",\n sha256 = \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strsim/0.11.1/download\"],\n strip_prefix = \"strsim-0.11.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strsim-0.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strum-0.27.2\",\n sha256 = \"af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum/0.27.2/download\"],\n strip_prefix = \"strum-0.27.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strum-0.27.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__strum_macros-0.27.2\",\n sha256 = \"7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/strum_macros/0.27.2/download\"],\n strip_prefix = \"strum_macros-0.27.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.strum_macros-0.27.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__subtle-2.6.1\",\n sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n strip_prefix = \"subtle-2.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__syn-2.0.104\",\n sha256 = \"17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.104/download\"],\n strip_prefix = \"syn-2.0.104\",\n build_file = Label(\"@crate_index//crate_index:BUILD.syn-2.0.104.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__sync_wrapper-1.0.2\",\n sha256 = \"0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/sync_wrapper/1.0.2/download\"],\n strip_prefix = \"sync_wrapper-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.sync_wrapper-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__synstructure-0.13.2\",\n sha256 = \"728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/synstructure/0.13.2/download\"],\n strip_prefix = \"synstructure-0.13.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.synstructure-0.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__system-configuration-0.6.1\",\n sha256 = \"3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration/0.6.1/download\"],\n strip_prefix = \"system-configuration-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.system-configuration-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__system-configuration-sys-0.6.0\",\n sha256 = \"8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/system-configuration-sys/0.6.0/download\"],\n strip_prefix = \"system-configuration-sys-0.6.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.system-configuration-sys-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tempfile-3.20.0\",\n sha256 = \"e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tempfile/3.20.0/download\"],\n strip_prefix = \"tempfile-3.20.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tempfile-3.20.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-1.0.69\",\n sha256 = \"b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/1.0.69/download\"],\n strip_prefix = \"thiserror-1.0.69\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-2.0.12\",\n sha256 = \"567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror/2.0.12/download\"],\n strip_prefix = \"thiserror-2.0.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-2.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-1.0.69\",\n sha256 = \"4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/1.0.69/download\"],\n strip_prefix = \"thiserror-impl-1.0.69\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-1.0.69.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__thiserror-impl-2.0.12\",\n sha256 = \"7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/thiserror-impl/2.0.12/download\"],\n strip_prefix = \"thiserror-impl-2.0.12\",\n build_file = Label(\"@crate_index//crate_index:BUILD.thiserror-impl-2.0.12.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-0.3.41\",\n sha256 = \"8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time/0.3.41/download\"],\n strip_prefix = \"time-0.3.41\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-0.3.41.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-core-0.1.4\",\n sha256 = \"c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-core/0.1.4/download\"],\n strip_prefix = \"time-core-0.1.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-core-0.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__time-macros-0.2.22\",\n sha256 = \"3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/time-macros/0.2.22/download\"],\n strip_prefix = \"time-macros-0.2.22\",\n build_file = Label(\"@crate_index//crate_index:BUILD.time-macros-0.2.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tiny-keccak-2.0.2\",\n sha256 = \"2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tiny-keccak/2.0.2/download\"],\n strip_prefix = \"tiny-keccak-2.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tiny-keccak-2.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tinystr-0.8.2\",\n sha256 = \"42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tinystr/0.8.2/download\"],\n strip_prefix = \"tinystr-0.8.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tinystr-0.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tls_codec-0.4.2\",\n sha256 = \"0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tls_codec/0.4.2/download\"],\n strip_prefix = \"tls_codec-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tls_codec-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tls_codec_derive-0.4.2\",\n sha256 = \"2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tls_codec_derive/0.4.2/download\"],\n strip_prefix = \"tls_codec_derive-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tls_codec_derive-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-1.47.1\",\n sha256 = \"89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio/1.47.1/download\"],\n strip_prefix = \"tokio-1.47.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-1.47.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-macros-2.5.0\",\n sha256 = \"6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-macros/2.5.0/download\"],\n strip_prefix = \"tokio-macros-2.5.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-macros-2.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-native-tls-0.3.1\",\n sha256 = \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-native-tls/0.3.1/download\"],\n strip_prefix = \"tokio-native-tls-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-native-tls-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-rustls-0.26.4\",\n sha256 = \"1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-rustls/0.26.4/download\"],\n strip_prefix = \"tokio-rustls-0.26.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-rustls-0.26.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tokio-util-0.7.17\",\n sha256 = \"2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tokio-util/0.7.17/download\"],\n strip_prefix = \"tokio-util-0.7.17\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tokio-util-0.7.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-0.5.2\",\n sha256 = \"d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower/0.5.2/download\"],\n strip_prefix = \"tower-0.5.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-0.5.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-http-0.6.7\",\n sha256 = \"9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-http/0.6.7/download\"],\n strip_prefix = \"tower-http-0.6.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-http-0.6.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-layer-0.3.3\",\n sha256 = \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-layer/0.3.3/download\"],\n strip_prefix = \"tower-layer-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-layer-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tower-service-0.3.3\",\n sha256 = \"8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tower-service/0.3.3/download\"],\n strip_prefix = \"tower-service-0.3.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tower-service-0.3.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-0.1.43\",\n sha256 = \"2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing/0.1.43/download\"],\n strip_prefix = \"tracing-0.1.43\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-0.1.43.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__tracing-core-0.1.35\",\n sha256 = \"7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/tracing-core/0.1.35/download\"],\n strip_prefix = \"tracing-core-0.1.35\",\n build_file = Label(\"@crate_index//crate_index:BUILD.tracing-core-0.1.35.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__try-lock-0.2.5\",\n sha256 = \"e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/try-lock/0.2.5/download\"],\n strip_prefix = \"try-lock-0.2.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.try-lock-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__twox-hash-1.6.3\",\n sha256 = \"97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/twox-hash/1.6.3/download\"],\n strip_prefix = \"twox-hash-1.6.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.twox-hash-1.6.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typeid-1.0.3\",\n sha256 = \"bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typeid/1.0.3/download\"],\n strip_prefix = \"typeid-1.0.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typeid-1.0.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typenum-1.18.0\",\n sha256 = \"1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typenum/1.18.0/download\"],\n strip_prefix = \"typenum-1.18.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typenum-1.18.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typetag-0.2.20\",\n sha256 = \"73f22b40dd7bfe8c14230cf9702081366421890435b2d625fa92b4acc4c3de6f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typetag/0.2.20/download\"],\n strip_prefix = \"typetag-0.2.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typetag-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__typetag-impl-0.2.20\",\n sha256 = \"35f5380909ffc31b4de4f4bdf96b877175a016aa2ca98cee39fcfd8c4d53d952\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/typetag-impl/0.2.20/download\"],\n strip_prefix = \"typetag-impl-0.2.20\",\n build_file = Label(\"@crate_index//crate_index:BUILD.typetag-impl-0.2.20.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__ucd-trie-0.1.7\",\n sha256 = \"2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ucd-trie/0.1.7/download\"],\n strip_prefix = \"ucd-trie-0.1.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.ucd-trie-0.1.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unescaper-0.1.6\",\n sha256 = \"c01d12e3a56a4432a8b436f293c25f4808bdf9e9f9f98f9260bba1f1bc5a1f26\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unescaper/0.1.6/download\"],\n strip_prefix = \"unescaper-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unescaper-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-ident-1.0.18\",\n sha256 = \"5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.18/download\"],\n strip_prefix = \"unicode-ident-1.0.18\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-ident-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unicode-width-0.2.1\",\n sha256 = \"4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-width/0.2.1/download\"],\n strip_prefix = \"unicode-width-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unicode-width-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__unit-prefix-0.5.1\",\n sha256 = \"323402cff2dd658f39ca17c789b502021b3f18707c91cdf22e3838e1b4023817\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unit-prefix/0.5.1/download\"],\n strip_prefix = \"unit-prefix-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.unit-prefix-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__url-2.5.7\",\n sha256 = \"08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/url/2.5.7/download\"],\n strip_prefix = \"url-2.5.7\",\n build_file = Label(\"@crate_index//crate_index:BUILD.url-2.5.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__utf8_iter-1.0.4\",\n sha256 = \"b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8_iter/1.0.4/download\"],\n strip_prefix = \"utf8_iter-1.0.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.utf8_iter-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__utf8parse-0.2.2\",\n sha256 = \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8parse/0.2.2/download\"],\n strip_prefix = \"utf8parse-0.2.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.utf8parse-0.2.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__vcpkg-0.2.15\",\n sha256 = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/vcpkg/0.2.15/download\"],\n strip_prefix = \"vcpkg-0.2.15\",\n build_file = Label(\"@crate_index//crate_index:BUILD.vcpkg-0.2.15.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__version_check-0.9.5\",\n sha256 = \"0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/version_check/0.9.5/download\"],\n strip_prefix = \"version_check-0.9.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.version_check-0.9.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__void-1.0.2\",\n sha256 = \"6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/void/1.0.2/download\"],\n strip_prefix = \"void-1.0.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.void-1.0.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__want-0.3.1\",\n sha256 = \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/want/0.3.1/download\"],\n strip_prefix = \"want-0.3.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.want-0.3.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasi-0.14.2-wasi-0.2.4\",\n sha256 = \"9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.14.2+wasi-0.2.4/download\"],\n strip_prefix = \"wasi-0.14.2+wasi-0.2.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasi-0.14.2+wasi-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-0.2.100\",\n sha256 = \"1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-backend-0.2.100\",\n sha256 = \"2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-backend/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-backend-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-backend-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-futures-0.4.50\",\n sha256 = \"555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-futures/0.4.50/download\"],\n strip_prefix = \"wasm-bindgen-futures-0.4.50\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-futures-0.4.50.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-0.2.100\",\n sha256 = \"7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-macro-support-0.2.100\",\n sha256 = \"8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-macro-support-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wasm-bindgen-shared-0.2.100\",\n sha256 = \"1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.100/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.100\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wasm-bindgen-shared-0.2.100.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-sys-0.3.77\",\n sha256 = \"33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-sys/0.3.77/download\"],\n strip_prefix = \"web-sys-0.3.77\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-sys-0.3.77.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__web-time-1.1.0\",\n sha256 = \"5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/web-time/1.1.0/download\"],\n strip_prefix = \"web-time-1.1.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.web-time-1.1.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-0.3.9\",\n sha256 = \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi/0.3.9/download\"],\n strip_prefix = \"winapi-0.3.9\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-i686-pc-windows-gnu-0.4.0\",\n sha256 = \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-i686-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__winapi-x86_64-pc-windows-gnu-0.4.0\",\n sha256 = \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download\"],\n strip_prefix = \"winapi-x86_64-pc-windows-gnu-0.4.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-core-0.61.2\",\n sha256 = \"c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-core/0.61.2/download\"],\n strip_prefix = \"windows-core-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-core-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-implement-0.60.0\",\n sha256 = \"a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-implement/0.60.0/download\"],\n strip_prefix = \"windows-implement-0.60.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-implement-0.60.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-interface-0.59.1\",\n sha256 = \"bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-interface/0.59.1/download\"],\n strip_prefix = \"windows-interface-0.59.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-interface-0.59.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.1.3\",\n sha256 = \"5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.1.3/download\"],\n strip_prefix = \"windows-link-0.1.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-registry-0.6.1\",\n sha256 = \"02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-registry/0.6.1/download\"],\n strip_prefix = \"windows-registry-0.6.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-registry-0.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.3.4\",\n sha256 = \"56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.3.4/download\"],\n strip_prefix = \"windows-result-0.3.4\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.3.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-result-0.4.1\",\n sha256 = \"7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-result/0.4.1/download\"],\n strip_prefix = \"windows-result-0.4.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-result-0.4.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.4.2\",\n sha256 = \"56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.4.2/download\"],\n strip_prefix = \"windows-strings-0.4.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.4.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-strings-0.5.1\",\n sha256 = \"7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-strings/0.5.1/download\"],\n strip_prefix = \"windows-strings-0.5.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-strings-0.5.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.59.0\",\n sha256 = \"1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.59.0/download\"],\n strip_prefix = \"windows-sys-0.59.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.59.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.60.2\",\n sha256 = \"f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.60.2/download\"],\n strip_prefix = \"windows-sys-0.60.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.60.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-sys-0.61.2\",\n sha256 = \"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.61.2/download\"],\n strip_prefix = \"windows-sys-0.61.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-sys-0.61.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows-targets-0.53.3\",\n sha256 = \"d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.53.3/download\"],\n strip_prefix = \"windows-targets-0.53.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows-targets-0.53.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_gnullvm-0.53.0\",\n sha256 = \"86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_aarch64_msvc-0.53.0\",\n sha256 = \"c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.53.0/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_aarch64_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnu-0.53.0\",\n sha256 = \"c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.53.0/download\"],\n strip_prefix = \"windows_i686_gnu-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnu-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_gnullvm-0.53.0\",\n sha256 = \"9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_i686_msvc-0.53.0\",\n sha256 = \"581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.53.0/download\"],\n strip_prefix = \"windows_i686_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_i686_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnu-0.53.0\",\n sha256 = \"2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnu-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_gnullvm-0.53.0\",\n sha256 = \"0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_gnullvm-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__windows_x86_64_msvc-0.53.0\",\n sha256 = \"271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.53.0/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.53.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.windows_x86_64_msvc-0.53.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__wit-bindgen-rt-0.39.0\",\n sha256 = \"6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wit-bindgen-rt/0.39.0/download\"],\n strip_prefix = \"wit-bindgen-rt-0.39.0\",\n build_file = Label(\"@crate_index//crate_index:BUILD.wit-bindgen-rt-0.39.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__writeable-0.6.2\",\n sha256 = \"9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/writeable/0.6.2/download\"],\n strip_prefix = \"writeable-0.6.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.writeable-0.6.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__x509-cert-0.2.5\",\n sha256 = \"1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/x509-cert/0.2.5/download\"],\n strip_prefix = \"x509-cert-0.2.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.x509-cert-0.2.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yoke-0.8.1\",\n sha256 = \"72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke/0.8.1/download\"],\n strip_prefix = \"yoke-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yoke-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__yoke-derive-0.8.1\",\n sha256 = \"b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/yoke-derive/0.8.1/download\"],\n strip_prefix = \"yoke-derive-0.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.yoke-derive-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-0.8.26\",\n sha256 = \"1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy/0.8.26/download\"],\n strip_prefix = \"zerocopy-0.8.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-0.8.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerocopy-derive-0.8.26\",\n sha256 = \"9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerocopy-derive/0.8.26/download\"],\n strip_prefix = \"zerocopy-derive-0.8.26\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerocopy-derive-0.8.26.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerofrom-0.1.6\",\n sha256 = \"50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom/0.1.6/download\"],\n strip_prefix = \"zerofrom-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerofrom-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerofrom-derive-0.1.6\",\n sha256 = \"d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerofrom-derive/0.1.6/download\"],\n strip_prefix = \"zerofrom-derive-0.1.6\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerofrom-derive-0.1.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize-1.8.1\",\n sha256 = \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.1/download\"],\n strip_prefix = \"zeroize-1.8.1\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize-1.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zeroize_derive-1.4.3\",\n sha256 = \"85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize_derive/1.4.3/download\"],\n strip_prefix = \"zeroize_derive-1.4.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zeroize_derive-1.4.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerotrie-0.2.3\",\n sha256 = \"2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerotrie/0.2.3/download\"],\n strip_prefix = \"zerotrie-0.2.3\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerotrie-0.2.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerovec-0.11.5\",\n sha256 = \"6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec/0.11.5/download\"],\n strip_prefix = \"zerovec-0.11.5\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerovec-0.11.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crate_index__zerovec-derive-0.11.2\",\n sha256 = \"eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zerovec-derive/0.11.2/download\"],\n strip_prefix = \"zerovec-derive-0.11.2\",\n build_file = Label(\"@crate_index//crate_index:BUILD.zerovec-derive-0.11.2.bazel\"),\n )\n\n return [\n struct(repo=\"crate_index__aes-0.8.4\", is_dev_dep = False),\n struct(repo=\"crate_index__anstyle-1.0.11\", is_dev_dep = False),\n struct(repo=\"crate_index__anyhow-1.0.98\", is_dev_dep = False),\n struct(repo=\"crate_index__arrayvec-0.7.6\", is_dev_dep = False),\n struct(repo=\"crate_index__asn1-0.22.0\", is_dev_dep = False),\n struct(repo=\"crate_index__base64-0.21.7\", is_dev_dep = False),\n struct(repo=\"crate_index__base64ct-1.8.0\", is_dev_dep = False),\n struct(repo=\"crate_index__bitflags-2.10.0\", is_dev_dep = False),\n struct(repo=\"crate_index__byteorder-1.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__chrono-0.4.41\", is_dev_dep = False),\n struct(repo=\"crate_index__ciborium-0.2.2\", is_dev_dep = False),\n struct(repo=\"crate_index__clap-4.5.48\", is_dev_dep = False),\n struct(repo=\"crate_index__const-oid-0.9.6\", is_dev_dep = False),\n struct(repo=\"crate_index__coset-0.3.8\", is_dev_dep = False),\n struct(repo=\"crate_index__crc-3.3.0\", is_dev_dep = False),\n struct(repo=\"crate_index__cryptoki-0.12.0\", is_dev_dep = False),\n struct(repo=\"crate_index__cryptoki-sys-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__der-0.7.10\", is_dev_dep = False),\n struct(repo=\"crate_index__deser-hjson-2.2.4\", is_dev_dep = False),\n struct(repo=\"crate_index__directories-6.0.0\", is_dev_dep = False),\n struct(repo=\"crate_index__ecdsa-0.16.9\", is_dev_dep = False),\n struct(repo=\"crate_index__elliptic-curve-0.13.8\", is_dev_dep = False),\n struct(repo=\"crate_index__embedded-hal-1.0.0\", is_dev_dep = False),\n struct(repo=\"crate_index__env_logger-0.11.8\", is_dev_dep = False),\n struct(repo=\"crate_index__erased-serde-0.4.6\", is_dev_dep = False),\n struct(repo=\"crate_index__foreign-types-0.3.2\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-0.1.3\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-embedded-hal-0.23.2\", is_dev_dep = False),\n struct(repo=\"crate_index__ftdi-mpsse-0.1.2\", is_dev_dep = False),\n struct(repo=\"crate_index__heck-0.5.0\", is_dev_dep = False),\n struct(repo=\"crate_index__hex-0.4.3\", is_dev_dep = False),\n struct(repo=\"crate_index__hmac-0.12.1\", is_dev_dep = False),\n struct(repo=\"crate_index__humantime-2.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__humantime-serde-1.1.1\", is_dev_dep = False),\n struct(repo=\"crate_index__indexmap-2.10.0\", is_dev_dep = False),\n struct(repo=\"crate_index__indicatif-0.18.0\", is_dev_dep = False),\n struct(repo=\"crate_index__inventory-0.3.20\", is_dev_dep = False),\n struct(repo=\"crate_index__itertools-0.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__libloading-0.8.9\", is_dev_dep = False),\n struct(repo=\"crate_index__log-0.4.29\", is_dev_dep = False),\n struct(repo=\"crate_index__memchr-2.7.5\", is_dev_dep = False),\n struct(repo=\"crate_index__ml-dsa-0.0.4\", is_dev_dep = False),\n struct(repo=\"crate_index__num-bigint-dig-0.8.4\", is_dev_dep = False),\n struct(repo=\"crate_index__num-traits-0.2.19\", is_dev_dep = False),\n struct(repo=\"crate_index__object-0.36.7\", is_dev_dep = False),\n struct(repo=\"crate_index__once_cell-1.21.3\", is_dev_dep = False),\n struct(repo=\"crate_index__openssl-0.10.73\", is_dev_dep = False),\n struct(repo=\"crate_index__openssl-sys-0.9.109\", is_dev_dep = False),\n struct(repo=\"crate_index__p256-0.13.2\", is_dev_dep = False),\n struct(repo=\"crate_index__p384-0.13.1\", is_dev_dep = False),\n struct(repo=\"crate_index__paste-1.0.15\", is_dev_dep = False),\n struct(repo=\"crate_index__pem-rfc7468-0.7.0\", is_dev_dep = False),\n struct(repo=\"crate_index__pest-2.8.1\", is_dev_dep = False),\n struct(repo=\"crate_index__pest_derive-2.8.1\", is_dev_dep = False),\n struct(repo=\"crate_index__pkcs8-0.10.2\", is_dev_dep = False),\n struct(repo=\"crate_index__proc-macro2-1.0.95\", is_dev_dep = False),\n struct(repo=\"crate_index__quote-1.0.40\", is_dev_dep = False),\n struct(repo=\"crate_index__rand-0.8.5\", is_dev_dep = False),\n struct(repo=\"crate_index__rand_chacha-0.3.1\", is_dev_dep = False),\n struct(repo=\"crate_index__regex-1.11.1\", is_dev_dep = False),\n struct(repo=\"crate_index__reqwest-0.12.24\", is_dev_dep = False),\n struct(repo=\"crate_index__rsa-0.9.8\", is_dev_dep = False),\n struct(repo=\"crate_index__rusb-0.9.4\", is_dev_dep = False),\n struct(repo=\"crate_index__rustix-1.0.8\", is_dev_dep = False),\n struct(repo=\"crate_index__scopeguard-1.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__serde-1.0.228\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_bytes-0.11.17\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_json-1.0.142\", is_dev_dep = False),\n struct(repo=\"crate_index__serde_with-3.14.0\", is_dev_dep = False),\n struct(repo=\"crate_index__serialport-4.7.2\", is_dev_dep = False),\n struct(repo=\"crate_index__sha2-0.10.9\", is_dev_dep = False),\n struct(repo=\"crate_index__sha3-0.10.8\", is_dev_dep = False),\n struct(repo=\"crate_index__shellwords-1.1.0\", is_dev_dep = False),\n struct(repo=\"crate_index__signature-2.2.0\", is_dev_dep = False),\n struct(repo=\"crate_index__spki-0.7.3\", is_dev_dep = False),\n struct(repo=\"crate_index__strum-0.27.2\", is_dev_dep = False),\n struct(repo=\"crate_index__syn-2.0.104\", is_dev_dep = False),\n struct(repo=\"crate_index__tempfile-3.20.0\", is_dev_dep = False),\n struct(repo=\"crate_index__thiserror-2.0.12\", is_dev_dep = False),\n struct(repo=\"crate_index__tiny-keccak-2.0.2\", is_dev_dep = False),\n struct(repo=\"crate_index__tokio-1.47.1\", is_dev_dep = False),\n struct(repo=\"crate_index__typetag-0.2.20\", is_dev_dep = False),\n struct(repo=\"crate_index__x509-cert-0.2.5\", is_dev_dep = False),\n struct(repo=\"crate_index__zerocopy-0.8.26\", is_dev_dep = False),\n struct(repo=\"crate_index__zeroize-1.8.1\", is_dev_dep = False),\n struct(repo = \"crate_index__indoc-2.0.6\", is_dev_dep = True),\n ]\n" } } }, @@ -6539,7 +6539,7 @@ "https://static.crates.io/crates/arrayvec/0.7.6/download" ], "strip_prefix": "arrayvec-0.7.6", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"arrayvec\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=arrayvec\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.6\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"arrayvec\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=arrayvec\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.6\",\n)\n" } }, "crate_index__asn1-0.22.0": { @@ -6702,20 +6702,20 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"bitflags\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=bitflags\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.3.2\",\n)\n" } }, - "crate_index__bitflags-2.9.1": { + "crate_index__bitflags-2.10.0": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967", + "sha256": "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/bitflags/2.9.1/download" + "https://static.crates.io/crates/bitflags/2.10.0/download" ], - "strip_prefix": "bitflags-2.9.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"bitflags\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=bitflags\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.9.1\",\n)\n" + "strip_prefix": "bitflags-2.10.0", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"bitflags\",\n deps = [\n \"@crate_index__serde_core-1.0.228//:serde_core\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"serde\",\n \"serde_core\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=bitflags\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.10.0\",\n)\n" } }, "crate_index__block-buffer-0.10.4": { @@ -6843,7 +6843,7 @@ "https://static.crates.io/crates/ciborium/0.2.2/download" ], "strip_prefix": "ciborium-0.2.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ciborium\",\n deps = [\n \"@crate_index__ciborium-io-0.2.2//:ciborium_io\",\n \"@crate_index__ciborium-ll-0.2.2//:ciborium_ll\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=ciborium\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.2\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ciborium\",\n deps = [\n \"@crate_index__ciborium-io-0.2.2//:ciborium_io\",\n \"@crate_index__ciborium-ll-0.2.2//:ciborium_ll\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=ciborium\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.2\",\n)\n" } }, "crate_index__ciborium-io-0.2.2": { @@ -7003,7 +7003,7 @@ "https://static.crates.io/crates/const-oid/0.9.6/download" ], "strip_prefix": "const-oid-0.9.6", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"const_oid\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=const-oid\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.6\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"const_oid\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"db\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=const-oid\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.6\",\n)\n" } }, "crate_index__core-foundation-0.9.4": { @@ -7182,41 +7182,36 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"crypto_common\",\n deps = [\n \"@crate_index__generic-array-0.14.7//:generic_array\",\n \"@crate_index__typenum-1.18.0//:typenum\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=crypto-common\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.6\",\n)\n" } }, - "crate_index__cryptoki-0.10.0": { + "crate_index__cryptoki-0.12.0": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { - "patch_args": [ - "-p2" - ], + "patch_args": [], "patch_tool": "", - "patches": [ - "@@//third_party/rust/patches:cryptoki-profile.patch", - "@@//third_party/rust/patches:cryptoki-vendor-defined-mechanism-type.patch" - ], + "patches": [], "remote_patch_strip": 1, - "sha256": "781357a7779a8e92ea985121bbf379a9adf0777f44ab6392efc6abd5aa9b67db", + "sha256": "ff765b99fc49f3116c9a908484486a2b92fd73c48da45c3a69716471c6cc56c6", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/cryptoki/0.10.0/download" + "https://static.crates.io/crates/cryptoki/0.12.0/download" ], - "strip_prefix": "cryptoki-0.10.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"cryptoki\",\n deps = [\n \"@crate_index__bitflags-1.3.2//:bitflags\",\n \"@crate_index__cryptoki-sys-0.4.0//:cryptoki_sys\",\n \"@crate_index__libloading-0.8.8//:libloading\",\n \"@crate_index__log-0.4.27//:log\",\n \"@crate_index__secrecy-0.8.0//:secrecy\",\n ],\n proc_macro_deps = [\n \"@crate_index__paste-1.0.15//:paste\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.0\",\n)\n" + "strip_prefix": "cryptoki-0.12.0", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"cryptoki\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__cryptoki-sys-0.5.0//:cryptoki_sys\",\n \"@crate_index__libloading-0.8.9//:libloading\",\n \"@crate_index__log-0.4.29//:log\",\n \"@crate_index__secrecy-0.10.3//:secrecy\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.12.0\",\n)\n" } }, - "crate_index__cryptoki-sys-0.4.0": { + "crate_index__cryptoki-sys-0.5.0": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "753e27d860277930ae9f394c119c8c70303236aab0ffab1d51f3d207dbb2bc4b", + "sha256": "f1fd850498411e4057f1cba79e6e2bc7cbe960544c1046ab46d4685c403a1121", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/cryptoki-sys/0.4.0/download" + "https://static.crates.io/crates/cryptoki-sys/0.5.0/download" ], - "strip_prefix": "cryptoki-sys-0.4.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"cryptoki_sys\",\n deps = [\n \"@crate_index__cryptoki-sys-0.4.0//:build_script_build\",\n \"@crate_index__libloading-0.8.8//:libloading\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.0\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"cryptoki-sys\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.4.0\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n\n# Additive BUILD file content\n\nfilegroup(\n name = \"binding_srcs\",\n srcs = [\n \"src/lib.rs\",\n \"src/bindings/x86_64-unknown-linux-gnu.rs\",\n ],\n)\n" + "strip_prefix": "cryptoki-sys-0.5.0", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"cryptoki_sys\",\n deps = [\n \"@crate_index__cryptoki-sys-0.5.0//:build_script_build\",\n \"@crate_index__libloading-0.8.9//:libloading\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.5.0\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"cryptoki-sys\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=cryptoki-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.5.0\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n\n# Additive BUILD file content\n\nfilegroup(\n name = \"cryptoki-sys-binding-srcs\",\n srcs = glob([\"src/bindings/*.rs\"]),\n visibility = [\"//visibility:public\"],\n)\n" } }, "crate_index__darling-0.20.11": { @@ -7280,7 +7275,23 @@ "https://static.crates.io/crates/der/0.7.10/download" ], "strip_prefix": "der-0.7.10", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"der\",\n deps = [\n \"@crate_index__const-oid-0.9.6//:const_oid\",\n \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"oid\",\n \"pem\",\n \"std\",\n \"zeroize\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=der\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.10\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"der\",\n deps = [\n \"@crate_index__const-oid-0.9.6//:const_oid\",\n \"@crate_index__flagset-0.4.7//:flagset\",\n \"@crate_index__pem-rfc7468-0.7.0//:pem_rfc7468\",\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n proc_macro_deps = [\n \"@crate_index__der_derive-0.7.3//:der_derive\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"derive\",\n \"flagset\",\n \"oid\",\n \"pem\",\n \"std\",\n \"zeroize\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=der\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.10\",\n)\n" + } + }, + "crate_index__der_derive-0.7.3": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/der_derive/0.7.3/download" + ], + "strip_prefix": "der_derive-0.7.3", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"der_derive\",\n deps = [\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=der_derive\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.3\",\n)\n" } }, "crate_index__deranged-0.4.0": { @@ -7312,7 +7323,7 @@ "https://static.crates.io/crates/deser-hjson/2.2.4/download" ], "strip_prefix": "deser-hjson-2.2.4", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"deser_hjson\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=deser-hjson\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.2.4\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"deser_hjson\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=deser-hjson\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.2.4\",\n)\n" } }, "crate_index__digest-0.10.7": { @@ -7536,7 +7547,7 @@ "https://static.crates.io/crates/env_filter/0.1.3/download" ], "strip_prefix": "env_filter-0.1.3", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"env_filter\",\n deps = [\n \"@crate_index__log-0.4.27//:log\",\n \"@crate_index__regex-1.11.1//:regex\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"regex\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=env_filter\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.3\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"env_filter\",\n deps = [\n \"@crate_index__log-0.4.29//:log\",\n \"@crate_index__regex-1.11.1//:regex\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"regex\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=env_filter\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.3\",\n)\n" } }, "crate_index__env_logger-0.11.8": { @@ -7552,7 +7563,7 @@ "https://static.crates.io/crates/env_logger/0.11.8/download" ], "strip_prefix": "env_logger-0.11.8", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"env_logger\",\n deps = [\n \"@crate_index__anstream-0.6.20//:anstream\",\n \"@crate_index__anstyle-1.0.11//:anstyle\",\n \"@crate_index__env_filter-0.1.3//:env_filter\",\n \"@crate_index__jiff-0.2.15//:jiff\",\n \"@crate_index__log-0.4.27//:log\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"auto-color\",\n \"color\",\n \"default\",\n \"humantime\",\n \"regex\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=env_logger\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.11.8\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"env_logger\",\n deps = [\n \"@crate_index__anstream-0.6.20//:anstream\",\n \"@crate_index__anstyle-1.0.11//:anstyle\",\n \"@crate_index__env_filter-0.1.3//:env_filter\",\n \"@crate_index__jiff-0.2.15//:jiff\",\n \"@crate_index__log-0.4.29//:log\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"auto-color\",\n \"color\",\n \"default\",\n \"humantime\",\n \"regex\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=env_logger\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.11.8\",\n)\n" } }, "crate_index__equivalent-1.0.2": { @@ -7584,7 +7595,7 @@ "https://static.crates.io/crates/erased-serde/0.4.6/download" ], "strip_prefix": "erased-serde-0.4.6", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"erased_serde\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__typeid-1.0.3//:typeid\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=erased-serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.6\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"erased_serde\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__typeid-1.0.3//:typeid\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=erased-serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.6\",\n)\n" } }, "crate_index__errno-0.3.13": { @@ -7635,6 +7646,22 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ff\",\n deps = [\n \"@crate_index__rand_core-0.6.4//:rand_core\",\n \"@crate_index__subtle-2.6.1//:subtle\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=ff\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.13.1\",\n)\n" } }, + "crate_index__flagset-0.4.7": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/flagset/0.4.7/download" + ], + "strip_prefix": "flagset-0.4.7", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"flagset\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=flagset\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.7\",\n)\n" + } + }, "crate_index__flate2-1.1.2": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { @@ -8032,7 +8059,7 @@ "https://static.crates.io/crates/hex/0.4.3/download" ], "strip_prefix": "hex-0.4.3", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"hex\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=hex\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.3\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"hex\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=hex\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.3\",\n)\n" } }, "crate_index__hkdf-0.12.4": { @@ -8160,7 +8187,23 @@ "https://static.crates.io/crates/humantime-serde/1.1.1/download" ], "strip_prefix": "humantime-serde-1.1.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"humantime_serde\",\n deps = [\n \"@crate_index__humantime-2.2.0//:humantime\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=humantime-serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.1.1\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"humantime_serde\",\n deps = [\n \"@crate_index__humantime-2.2.0//:humantime\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=humantime-serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.1.1\",\n)\n" + } + }, + "crate_index__hybrid-array-0.3.1": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "891d15931895091dea5c47afa5b3c9a01ba634b311919fd4d41388fa0e3d76af", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/hybrid-array/0.3.1/download" + ], + "strip_prefix": "hybrid-array-0.3.1", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"hybrid_array\",\n deps = [\n \"@crate_index__typenum-1.18.0//:typenum\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"extra-sizes\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2024\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=hybrid-array\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.3.1\",\n)\n" } }, "crate_index__hyper-1.8.1": { @@ -8448,7 +8491,7 @@ "https://static.crates.io/crates/indexmap/2.10.0/download" ], "strip_prefix": "indexmap-2.10.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"indexmap\",\n deps = [\n \"@crate_index__equivalent-1.0.2//:equivalent\",\n \"@crate_index__hashbrown-0.15.4//:hashbrown\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=indexmap\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.10.0\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"indexmap\",\n deps = [\n \"@crate_index__equivalent-1.0.2//:equivalent\",\n \"@crate_index__hashbrown-0.15.4//:hashbrown\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=indexmap\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.10.0\",\n)\n" } }, "crate_index__indicatif-0.18.0": { @@ -8544,7 +8587,7 @@ "https://static.crates.io/crates/io-uring/0.7.9/download" ], "strip_prefix": "io-uring-0.7.9", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"io_uring\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__io-uring-0.7.9//:build_script_build\",\n \"@crate_index__libc-0.2.174//:libc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=io-uring\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.9\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"io-uring\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=io-uring\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.7.9\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"io_uring\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__io-uring-0.7.9//:build_script_build\",\n \"@crate_index__libc-0.2.174//:libc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=io-uring\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.9\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"io-uring\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=io-uring\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.7.9\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__ipnet-2.11.0": { @@ -8739,20 +8782,20 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"libftdi1_sys\",\n deps = [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__libc-0.2.174//:libc\",\n \"@crate_index__libftdi1-sys-1.1.3//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libftdi1-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.1.3\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__pkg-config-0.3.32//:pkg_config\", # cfg(not(all(windows, target_env = \"msvc\")))\n ],\n \"//conditions:default\": [],\n }),\n edition = \"2018\",\n links = \"ftdi1\",\n pkg_name = \"libftdi1-sys\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libftdi1-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.1.3\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crate_index__libloading-0.8.8": { + "crate_index__libloading-0.8.9": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667", + "sha256": "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/libloading/0.8.8/download" + "https://static.crates.io/crates/libloading/0.8.9/download" ], - "strip_prefix": "libloading-0.8.8", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"libloading\",\n deps = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\", # cfg(unix)\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libloading\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.8\",\n)\n" + "strip_prefix": "libloading-0.8.9", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"libloading\",\n deps = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\", # cfg(unix)\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libloading\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.9\",\n)\n" } }, "crate_index__libm-0.2.15": { @@ -8784,7 +8827,7 @@ "https://static.crates.io/crates/libredox/0.1.9/download" ], "strip_prefix": "libredox-0.1.9", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"libredox\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__libc-0.2.174//:libc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libredox\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.9\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"libredox\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__libc-0.2.174//:libc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=libredox\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.1.9\",\n)\n" } }, "crate_index__libudev-0.3.0": { @@ -8887,20 +8930,20 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"lock_api\",\n deps = [\n \"@crate_index__lock_api-0.4.13//:build_script_build\",\n \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"atomic_usize\",\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=lock_api\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.13\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"atomic_usize\",\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crate_index__autocfg-1.5.0//:autocfg\",\n ],\n edition = \"2021\",\n pkg_name = \"lock_api\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=lock_api\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.4.13\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crate_index__log-0.4.27": { + "crate_index__log-0.4.29": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94", + "sha256": "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/log/0.4.27/download" + "https://static.crates.io/crates/log/0.4.29/download" ], - "strip_prefix": "log-0.4.27", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"log\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=log\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.27\",\n)\n" + "strip_prefix": "log-0.4.29", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"log\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=log\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.29\",\n)\n" } }, "crate_index__mach2-0.4.3": { @@ -8983,6 +9026,22 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"mio\",\n deps = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__libc-0.2.174//:libc\", # cfg(unix)\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"net\",\n \"os-ext\",\n \"os-poll\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=mio\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.4\",\n)\n" } }, + "crate_index__ml-dsa-0.0.4": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "ac4a46643af2001eafebcc37031fc459eb72d45057aac5d7a15b00046a2ad6db", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/ml-dsa/0.0.4/download" + ], + "strip_prefix": "ml-dsa-0.0.4", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"ml_dsa\",\n deps = [\n \"@crate_index__const-oid-0.9.6//:const_oid\",\n \"@crate_index__hybrid-array-0.3.1//:hybrid_array\",\n \"@crate_index__num-traits-0.2.19//:num_traits\",\n \"@crate_index__pkcs8-0.10.2//:pkcs8\",\n \"@crate_index__rand_core-0.6.4//:rand_core\",\n \"@crate_index__sha3-0.10.8//:sha3\",\n \"@crate_index__signature-2.2.0//:signature\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"pkcs8\",\n \"rand_core\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2024\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=ml-dsa\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.0.4\",\n)\n" + } + }, "crate_index__native-tls-0.2.14": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { @@ -8996,7 +9055,7 @@ "https://static.crates.io/crates/native-tls/0.2.14/download" ], "strip_prefix": "native-tls-0.2.14", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"native_tls\",\n deps = [\n \"@crate_index__native-tls-0.2.14//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__log-0.4.27//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-0.10.73//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-probe-0.1.6//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.14\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n edition = \"2015\",\n pkg_name = \"native-tls\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.2.14\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"native_tls\",\n deps = [\n \"@crate_index__native-tls-0.2.14//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__log-0.4.29//:log\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-0.10.73//:openssl\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-probe-0.1.6//:openssl_probe\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.14\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\", # cfg(not(any(target_os = \"windows\", target_vendor = \"apple\")))\n ],\n \"//conditions:default\": [],\n }),\n edition = \"2015\",\n pkg_name = \"native-tls\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=native-tls\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.2.14\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__nb-0.1.3": { @@ -9060,7 +9119,7 @@ "https://static.crates.io/crates/num-bigint-dig/0.8.4/download" ], "strip_prefix": "num-bigint-dig-0.8.4", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"num_bigint_dig\",\n deps = [\n \"@crate_index__byteorder-1.5.0//:byteorder\",\n \"@crate_index__lazy_static-1.5.0//:lazy_static\",\n \"@crate_index__libm-0.2.15//:libm\",\n \"@crate_index__num-bigint-dig-0.8.4//:build_script_build\",\n \"@crate_index__num-integer-0.1.46//:num_integer\",\n \"@crate_index__num-iter-0.1.45//:num_iter\",\n \"@crate_index__num-traits-0.2.19//:num_traits\",\n \"@crate_index__rand-0.8.5//:rand\",\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__smallvec-1.15.1//:smallvec\",\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"i128\",\n \"prime\",\n \"rand\",\n \"serde\",\n \"std\",\n \"u64_digit\",\n \"zeroize\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-bigint-dig\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.4\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"i128\",\n \"prime\",\n \"rand\",\n \"serde\",\n \"std\",\n \"u64_digit\",\n \"zeroize\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"num-bigint-dig\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-bigint-dig\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.8.4\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"num_bigint_dig\",\n deps = [\n \"@crate_index__byteorder-1.5.0//:byteorder\",\n \"@crate_index__lazy_static-1.5.0//:lazy_static\",\n \"@crate_index__libm-0.2.15//:libm\",\n \"@crate_index__num-bigint-dig-0.8.4//:build_script_build\",\n \"@crate_index__num-integer-0.1.46//:num_integer\",\n \"@crate_index__num-iter-0.1.45//:num_iter\",\n \"@crate_index__num-traits-0.2.19//:num_traits\",\n \"@crate_index__rand-0.8.5//:rand\",\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__smallvec-1.15.1//:smallvec\",\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"i128\",\n \"prime\",\n \"rand\",\n \"serde\",\n \"std\",\n \"u64_digit\",\n \"zeroize\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-bigint-dig\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.4\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"i128\",\n \"prime\",\n \"rand\",\n \"serde\",\n \"std\",\n \"u64_digit\",\n \"zeroize\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"num-bigint-dig\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=num-bigint-dig\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.8.4\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__num-conv-0.1.0": { @@ -9188,7 +9247,7 @@ "https://static.crates.io/crates/openssl/0.10.73/download" ], "strip_prefix": "openssl-0.10.73", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"openssl\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n \"@crate_index__libc-0.2.174//:libc\",\n \"@crate_index__once_cell-1.21.3//:once_cell\",\n \"@crate_index__openssl-0.10.73//:build_script_build\",\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n ],\n proc_macro_deps = [\n \"@crate_index__openssl-macros-0.1.1//:openssl_macros\",\n ],\n aliases = {\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\": \"ffi\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.73\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = [\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n ],\n edition = \"2021\",\n pkg_name = \"openssl\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.10.73\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"openssl\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__foreign-types-0.3.2//:foreign_types\",\n \"@crate_index__libc-0.2.174//:libc\",\n \"@crate_index__once_cell-1.21.3//:once_cell\",\n \"@crate_index__openssl-0.10.73//:build_script_build\",\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n ],\n proc_macro_deps = [\n \"@crate_index__openssl-macros-0.1.1//:openssl_macros\",\n ],\n aliases = {\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\": \"ffi\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.73\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n link_deps = [\n \"@crate_index__openssl-sys-0.9.109//:openssl_sys\",\n ],\n edition = \"2021\",\n pkg_name = \"openssl\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=openssl\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.10.73\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__openssl-macros-0.1.1": { @@ -9716,7 +9775,7 @@ "https://static.crates.io/crates/redox_syscall/0.5.17/download" ], "strip_prefix": "redox_syscall-0.5.17", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"syscall\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=redox_syscall\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.5.17\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"syscall\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=redox_syscall\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.5.17\",\n)\n" } }, "crate_index__redox_users-0.5.2": { @@ -9828,7 +9887,7 @@ "https://static.crates.io/crates/reqwest/0.12.24/download" ], "strip_prefix": "reqwest-0.12.24", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"reqwest\",\n deps = [\n \"@crate_index__base64-0.22.1//:base64\",\n \"@crate_index__bytes-1.10.1//:bytes\",\n \"@crate_index__encoding_rs-0.8.35//:encoding_rs\",\n \"@crate_index__futures-channel-0.3.31//:futures_channel\",\n \"@crate_index__futures-core-0.3.31//:futures_core\",\n \"@crate_index__futures-util-0.3.31//:futures_util\",\n \"@crate_index__h2-0.4.12//:h2\",\n \"@crate_index__http-1.4.0//:http\",\n \"@crate_index__hyper-tls-0.6.0//:hyper_tls\",\n \"@crate_index__mime-0.3.17//:mime\",\n \"@crate_index__native-tls-0.2.14//:native_tls\",\n \"@crate_index__rustls-pki-types-1.13.1//:rustls_pki_types\",\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n \"@crate_index__serde_urlencoded-0.7.1//:serde_urlencoded\",\n \"@crate_index__sync_wrapper-1.0.2//:sync_wrapper\",\n \"@crate_index__tokio-native-tls-0.3.1//:tokio_native_tls\",\n \"@crate_index__url-2.5.7//:url\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__http-body-1.0.1//:http_body\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__http-body-util-0.1.3//:http_body_util\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__hyper-1.8.1//:hyper\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__hyper-util-0.1.19//:hyper_util\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__log-0.4.27//:log\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__percent-encoding-2.3.2//:percent_encoding\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__pin-project-lite-0.2.16//:pin_project_lite\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tokio-1.47.1//:tokio\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-0.5.2//:tower\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-http-0.6.7//:tower_http\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-service-0.3.3//:tower_service\", # cfg(not(target_arch = \"wasm32\"))\n ],\n \"//conditions:default\": [],\n }),\n aliases = {\n \"@crate_index__native-tls-0.2.14//:native_tls\": \"native_tls_crate\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"__tls\",\n \"blocking\",\n \"charset\",\n \"default\",\n \"default-tls\",\n \"h2\",\n \"http2\",\n \"json\",\n \"system-proxy\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=reqwest\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.12.24\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"reqwest\",\n deps = [\n \"@crate_index__base64-0.22.1//:base64\",\n \"@crate_index__bytes-1.10.1//:bytes\",\n \"@crate_index__encoding_rs-0.8.35//:encoding_rs\",\n \"@crate_index__futures-channel-0.3.31//:futures_channel\",\n \"@crate_index__futures-core-0.3.31//:futures_core\",\n \"@crate_index__futures-util-0.3.31//:futures_util\",\n \"@crate_index__h2-0.4.12//:h2\",\n \"@crate_index__http-1.4.0//:http\",\n \"@crate_index__hyper-tls-0.6.0//:hyper_tls\",\n \"@crate_index__mime-0.3.17//:mime\",\n \"@crate_index__native-tls-0.2.14//:native_tls\",\n \"@crate_index__rustls-pki-types-1.13.1//:rustls_pki_types\",\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n \"@crate_index__serde_urlencoded-0.7.1//:serde_urlencoded\",\n \"@crate_index__sync_wrapper-1.0.2//:sync_wrapper\",\n \"@crate_index__tokio-native-tls-0.3.1//:tokio_native_tls\",\n \"@crate_index__url-2.5.7//:url\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__http-body-1.0.1//:http_body\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__http-body-util-0.1.3//:http_body_util\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__hyper-1.8.1//:hyper\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__hyper-util-0.1.19//:hyper_util\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__log-0.4.29//:log\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__percent-encoding-2.3.2//:percent_encoding\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__pin-project-lite-0.2.16//:pin_project_lite\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tokio-1.47.1//:tokio\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-0.5.2//:tower\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-http-0.6.7//:tower_http\", # cfg(not(target_arch = \"wasm32\"))\n \"@crate_index__tower-service-0.3.3//:tower_service\", # cfg(not(target_arch = \"wasm32\"))\n ],\n \"//conditions:default\": [],\n }),\n aliases = {\n \"@crate_index__native-tls-0.2.14//:native_tls\": \"native_tls_crate\",\n },\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"__tls\",\n \"blocking\",\n \"charset\",\n \"default\",\n \"default-tls\",\n \"h2\",\n \"http2\",\n \"json\",\n \"system-proxy\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=reqwest\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.12.24\",\n)\n" } }, "crate_index__rfc6979-0.4.0": { @@ -9924,7 +9983,7 @@ "https://static.crates.io/crates/rustix/1.0.8/download" ], "strip_prefix": "rustix-1.0.8", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"rustix\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__rustix-1.0.8//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__linux-raw-sys-0.9.4//:linux_raw_sys\", # cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), 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\"))))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"event\",\n \"fs\",\n \"net\",\n \"process\",\n \"std\",\n \"stdio\",\n \"termios\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustix\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.8\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"event\",\n \"fs\",\n \"net\",\n \"process\",\n \"std\",\n \"stdio\",\n \"termios\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"rustix\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustix\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.8\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"rustix\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__rustix-1.0.8//:build_script_build\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__linux-raw-sys-0.9.4//:linux_raw_sys\", # cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_endian = \"little\", any(target_arch = \"s390x\", target_arch = \"powerpc\")), any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"riscv64\", all(rustix_use_experimental_asm, target_arch = \"powerpc\"), all(rustix_use_experimental_asm, target_arch = \"powerpc64\"), all(rustix_use_experimental_asm, target_arch = \"s390x\"), 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\"))))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"event\",\n \"fs\",\n \"net\",\n \"process\",\n \"std\",\n \"stdio\",\n \"termios\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustix\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.8\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"event\",\n \"fs\",\n \"net\",\n \"process\",\n \"std\",\n \"stdio\",\n \"termios\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"rustix\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=rustix\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.8\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__rustls-0.23.35": { @@ -10052,7 +10111,7 @@ "https://static.crates.io/crates/schemars/0.9.0/download" ], "strip_prefix": "schemars-0.9.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"schemars\",\n deps = [\n \"@crate_index__dyn-clone-1.0.20//:dyn_clone\",\n \"@crate_index__ref-cast-1.0.24//:ref_cast\",\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=schemars\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.0\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"schemars\",\n deps = [\n \"@crate_index__dyn-clone-1.0.20//:dyn_clone\",\n \"@crate_index__ref-cast-1.0.24//:ref_cast\",\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=schemars\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.0\",\n)\n" } }, "crate_index__schemars-1.0.4": { @@ -10068,7 +10127,7 @@ "https://static.crates.io/crates/schemars/1.0.4/download" ], "strip_prefix": "schemars-1.0.4", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"schemars\",\n deps = [\n \"@crate_index__dyn-clone-1.0.20//:dyn_clone\",\n \"@crate_index__ref-cast-1.0.24//:ref_cast\",\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=schemars\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.4\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"schemars\",\n deps = [\n \"@crate_index__dyn-clone-1.0.20//:dyn_clone\",\n \"@crate_index__ref-cast-1.0.24//:ref_cast\",\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__serde_json-1.0.142//:serde_json\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=schemars\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.4\",\n)\n" } }, "crate_index__scopeguard-1.2.0": { @@ -10103,20 +10162,20 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"sec1\",\n deps = [\n \"@crate_index__base16ct-0.2.0//:base16ct\",\n \"@crate_index__der-0.7.10//:der\",\n \"@crate_index__generic-array-0.14.7//:generic_array\",\n \"@crate_index__pkcs8-0.10.2//:pkcs8\",\n \"@crate_index__subtle-2.6.1//:subtle\",\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"der\",\n \"pem\",\n \"pkcs8\",\n \"point\",\n \"std\",\n \"subtle\",\n \"zeroize\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=sec1\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.3\",\n)\n" } }, - "crate_index__secrecy-0.8.0": { + "crate_index__secrecy-0.10.3": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e", + "sha256": "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/secrecy/0.8.0/download" + "https://static.crates.io/crates/secrecy/0.10.3/download" ], - "strip_prefix": "secrecy-0.8.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"secrecy\",\n deps = [\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=secrecy\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.0\",\n)\n" + "strip_prefix": "secrecy-0.10.3", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"secrecy\",\n deps = [\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=secrecy\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.3\",\n)\n" } }, "crate_index__security-framework-2.11.1": { @@ -10132,7 +10191,7 @@ "https://static.crates.io/crates/security-framework/2.11.1/download" ], "strip_prefix": "security-framework-2.11.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"security_framework\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__core-foundation-0.9.4//:core_foundation\",\n \"@crate_index__core-foundation-sys-0.8.7//:core_foundation_sys\",\n \"@crate_index__libc-0.2.174//:libc\",\n \"@crate_index__security-framework-sys-2.15.0//:security_framework_sys\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=security-framework\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.11.1\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"security_framework\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__core-foundation-0.9.4//:core_foundation\",\n \"@crate_index__core-foundation-sys-0.8.7//:core_foundation_sys\",\n \"@crate_index__libc-0.2.174//:libc\",\n \"@crate_index__security-framework-sys-2.15.0//:security_framework_sys\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=security-framework\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.11.1\",\n)\n" } }, "crate_index__security-framework-sys-2.15.0": { @@ -10151,20 +10210,20 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"security_framework_sys\",\n deps = [\n \"@crate_index__core-foundation-sys-0.8.7//:core_foundation_sys\",\n \"@crate_index__libc-0.2.174//:libc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=security-framework-sys\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.15.0\",\n)\n" } }, - "crate_index__serde-1.0.219": { + "crate_index__serde-1.0.228": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6", + "sha256": "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/serde/1.0.219/download" + "https://static.crates.io/crates/serde/1.0.228/download" ], - "strip_prefix": "serde-1.0.219", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde\",\n deps = [\n \"@crate_index__serde-1.0.219//:build_script_build\",\n ],\n proc_macro_deps = [\n \"@crate_index__serde_derive-1.0.219//:serde_derive\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"derive\",\n \"serde_derive\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.219\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"derive\",\n \"serde_derive\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"serde\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.219\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "serde-1.0.228", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde\",\n deps = [\n \"@crate_index__serde-1.0.228//:build_script_build\",\n \"@crate_index__serde_core-1.0.228//:serde_core\",\n ],\n proc_macro_deps = [\n \"@crate_index__serde_derive-1.0.228//:serde_derive\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"derive\",\n \"serde_derive\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.228\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"derive\",\n \"serde_derive\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"serde\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.228\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__serde_bytes-0.11.17": { @@ -10180,23 +10239,39 @@ "https://static.crates.io/crates/serde_bytes/0.11.17/download" ], "strip_prefix": "serde_bytes-0.11.17", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_bytes\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_bytes\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.11.17\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_bytes\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_bytes\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.11.17\",\n)\n" } }, - "crate_index__serde_derive-1.0.219": { + "crate_index__serde_core-1.0.228": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { "patch_args": [], "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00", + "sha256": "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/serde_derive/1.0.219/download" + "https://static.crates.io/crates/serde_core/1.0.228/download" ], - "strip_prefix": "serde_derive-1.0.219", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"serde_derive\",\n deps = [\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_derive\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.219\",\n)\n" + "strip_prefix": "serde_core-1.0.228", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_core\",\n deps = [\n \"@crate_index__serde_core-1.0.228//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"result\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_core\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.228\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"result\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"serde_core\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_core\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.228\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + } + }, + "crate_index__serde_derive-1.0.228": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/serde_derive/1.0.228/download" + ], + "strip_prefix": "serde_derive-1.0.228", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"serde_derive\",\n deps = [\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_derive\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.228\",\n)\n" } }, "crate_index__serde_json-1.0.142": { @@ -10212,7 +10287,7 @@ "https://static.crates.io/crates/serde_json/1.0.142/download" ], "strip_prefix": "serde_json-1.0.142", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_json\",\n deps = [\n \"@crate_index__itoa-1.0.15//:itoa\",\n \"@crate_index__memchr-2.7.5//:memchr\",\n \"@crate_index__ryu-1.0.20//:ryu\",\n \"@crate_index__serde-1.0.219//:serde\",\n \"@crate_index__serde_json-1.0.142//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_json\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.142\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"serde_json\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_json\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.142\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_json\",\n deps = [\n \"@crate_index__itoa-1.0.15//:itoa\",\n \"@crate_index__memchr-2.7.5//:memchr\",\n \"@crate_index__ryu-1.0.20//:ryu\",\n \"@crate_index__serde-1.0.228//:serde\",\n \"@crate_index__serde_json-1.0.142//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_json\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.142\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"serde_json\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_json\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.142\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__serde_urlencoded-0.7.1": { @@ -10228,7 +10303,7 @@ "https://static.crates.io/crates/serde_urlencoded/0.7.1/download" ], "strip_prefix": "serde_urlencoded-0.7.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_urlencoded\",\n deps = [\n \"@crate_index__form_urlencoded-1.2.2//:form_urlencoded\",\n \"@crate_index__itoa-1.0.15//:itoa\",\n \"@crate_index__ryu-1.0.20//:ryu\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_urlencoded\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.1\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_urlencoded\",\n deps = [\n \"@crate_index__form_urlencoded-1.2.2//:form_urlencoded\",\n \"@crate_index__itoa-1.0.15//:itoa\",\n \"@crate_index__ryu-1.0.20//:ryu\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_urlencoded\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.7.1\",\n)\n" } }, "crate_index__serde_with-3.14.0": { @@ -10244,7 +10319,7 @@ "https://static.crates.io/crates/serde_with/3.14.0/download" ], "strip_prefix": "serde_with-3.14.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_with\",\n deps = [\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n proc_macro_deps = [\n \"@crate_index__serde_derive-1.0.219//:serde_derive\",\n \"@crate_index__serde_with_macros-3.14.0//:serde_with_macros\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"macros\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_with\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"3.14.0\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serde_with\",\n deps = [\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n proc_macro_deps = [\n \"@crate_index__serde_derive-1.0.228//:serde_derive\",\n \"@crate_index__serde_with_macros-3.14.0//:serde_with_macros\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n \"macros\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serde_with\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"3.14.0\",\n)\n" } }, "crate_index__serde_with_macros-3.14.0": { @@ -10276,7 +10351,23 @@ "https://static.crates.io/crates/serialport/4.7.2/download" ], "strip_prefix": "serialport-4.7.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serialport\",\n deps = [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__libudev-0.3.0//:libudev\",\n \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n \"@crate_index__serde-1.0.219//:serde\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__bitflags-2.9.1//:bitflags\", # cfg(unix)\n \"@crate_index__nix-0.26.4//:nix\", # cfg(unix)\n \"@crate_index__unescaper-0.1.6//:unescaper\", # cfg(all(target_os = \"linux\", not(target_env = \"musl\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"libudev\",\n \"serde\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serialport\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"4.7.2\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"serialport\",\n deps = [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__libudev-0.3.0//:libudev\",\n \"@crate_index__scopeguard-1.2.0//:scopeguard\",\n \"@crate_index__serde-1.0.228//:serde\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__bitflags-2.10.0//:bitflags\", # cfg(unix)\n \"@crate_index__nix-0.26.4//:nix\", # cfg(unix)\n \"@crate_index__unescaper-0.1.6//:unescaper\", # cfg(all(target_os = \"linux\", not(target_env = \"musl\")))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"libudev\",\n \"serde\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=serialport\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"4.7.2\",\n)\n" + } + }, + "crate_index__sha1-0.10.6": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/sha1/0.10.6/download" + ], + "strip_prefix": "sha1-0.10.6", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"sha1\",\n deps = [\n \"@crate_index__cfg-if-1.0.1//:cfg_if\",\n \"@crate_index__digest-0.10.7//:digest\",\n ] + select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [\n \"@crate_index__cpufeatures-0.2.17//:cpufeatures\", # cfg(any(target_arch = \"aarch64\", target_arch = \"x86\", target_arch = \"x86_64\"))\n ],\n \"//conditions:default\": [],\n }),\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=sha1\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.10.6\",\n)\n" } }, "crate_index__sha2-0.10.9": { @@ -10612,7 +10703,7 @@ "https://static.crates.io/crates/system-configuration/0.6.1/download" ], "strip_prefix": "system-configuration-0.6.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"system_configuration\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__core-foundation-0.9.4//:core_foundation\",\n \"@crate_index__system-configuration-sys-0.6.0//:system_configuration_sys\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=system-configuration\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.6.1\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"system_configuration\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__core-foundation-0.9.4//:core_foundation\",\n \"@crate_index__system-configuration-sys-0.6.0//:system_configuration_sys\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=system-configuration\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.6.1\",\n)\n" } }, "crate_index__system-configuration-sys-0.6.0": { @@ -10791,6 +10882,38 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"tinystr\",\n deps = [\n \"@crate_index__zerovec-0.11.5//:zerovec\",\n ],\n proc_macro_deps = [\n \"@crate_index__displaydoc-0.2.5//:displaydoc\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"zerovec\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=tinystr\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.8.2\",\n)\n" } }, + "crate_index__tls_codec-0.4.2": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/tls_codec/0.4.2/download" + ], + "strip_prefix": "tls_codec-0.4.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"tls_codec\",\n deps = [\n \"@crate_index__zeroize-1.8.1//:zeroize\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=tls_codec\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.2\",\n)\n" + } + }, + "crate_index__tls_codec_derive-0.4.2": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/tls_codec_derive/0.4.2/download" + ], + "strip_prefix": "tls_codec_derive-0.4.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"tls_codec_derive\",\n deps = [\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=tls_codec_derive\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.4.2\",\n)\n" + } + }, "crate_index__tokio-1.47.1": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { @@ -10900,7 +11023,7 @@ "https://static.crates.io/crates/tower-http/0.6.7/download" ], "strip_prefix": "tower-http-0.6.7", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"tower_http\",\n deps = [\n \"@crate_index__bitflags-2.9.1//:bitflags\",\n \"@crate_index__bytes-1.10.1//:bytes\",\n \"@crate_index__futures-util-0.3.31//:futures_util\",\n \"@crate_index__http-1.4.0//:http\",\n \"@crate_index__http-body-1.0.1//:http_body\",\n \"@crate_index__iri-string-0.7.9//:iri_string\",\n \"@crate_index__pin-project-lite-0.2.16//:pin_project_lite\",\n \"@crate_index__tower-0.5.2//:tower\",\n \"@crate_index__tower-layer-0.3.3//:tower_layer\",\n \"@crate_index__tower-service-0.3.3//:tower_service\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"follow-redirect\",\n \"futures-util\",\n \"iri-string\",\n \"tower\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=tower-http\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.6.7\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"tower_http\",\n deps = [\n \"@crate_index__bitflags-2.10.0//:bitflags\",\n \"@crate_index__bytes-1.10.1//:bytes\",\n \"@crate_index__futures-util-0.3.31//:futures_util\",\n \"@crate_index__http-1.4.0//:http\",\n \"@crate_index__http-body-1.0.1//:http_body\",\n \"@crate_index__iri-string-0.7.9//:iri_string\",\n \"@crate_index__pin-project-lite-0.2.16//:pin_project_lite\",\n \"@crate_index__tower-0.5.2//:tower\",\n \"@crate_index__tower-layer-0.3.3//:tower_layer\",\n \"@crate_index__tower-service-0.3.3//:tower_service\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"follow-redirect\",\n \"futures-util\",\n \"iri-string\",\n \"tower\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=tower-http\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.6.7\",\n)\n" } }, "crate_index__tower-layer-0.3.3": { @@ -11028,7 +11151,7 @@ "https://static.crates.io/crates/typenum/1.18.0/download" ], "strip_prefix": "typenum-1.18.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"typenum\",\n deps = [\n \"@crate_index__typenum-1.18.0//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typenum\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.18.0\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"typenum\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typenum\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.18.0\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"typenum\",\n deps = [\n \"@crate_index__typenum-1.18.0//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"const-generics\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typenum\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.18.0\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"const-generics\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"typenum\",\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typenum\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.18.0\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, "crate_index__typetag-0.2.20": { @@ -11044,7 +11167,7 @@ "https://static.crates.io/crates/typetag/0.2.20/download" ], "strip_prefix": "typetag-0.2.20", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"typetag\",\n deps = [\n \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n \"@crate_index__inventory-0.3.20//:inventory\",\n \"@crate_index__once_cell-1.21.3//:once_cell\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n proc_macro_deps = [\n \"@crate_index__typetag-impl-0.2.20//:typetag_impl\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typetag\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.20\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"typetag\",\n deps = [\n \"@crate_index__erased-serde-0.4.6//:erased_serde\",\n \"@crate_index__inventory-0.3.20//:inventory\",\n \"@crate_index__once_cell-1.21.3//:once_cell\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n proc_macro_deps = [\n \"@crate_index__typetag-impl-0.2.20//:typetag_impl\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=typetag\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.20\",\n)\n" } }, "crate_index__typetag-impl-0.2.20": { @@ -11172,7 +11295,7 @@ "https://static.crates.io/crates/url/2.5.7/download" ], "strip_prefix": "url-2.5.7", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"url\",\n deps = [\n \"@crate_index__form_urlencoded-1.2.2//:form_urlencoded\",\n \"@crate_index__idna-1.1.0//:idna\",\n \"@crate_index__percent-encoding-2.3.2//:percent_encoding\",\n \"@crate_index__serde-1.0.219//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=url\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.5.7\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"url\",\n deps = [\n \"@crate_index__form_urlencoded-1.2.2//:form_urlencoded\",\n \"@crate_index__idna-1.1.0//:idna\",\n \"@crate_index__percent-encoding-2.3.2//:percent_encoding\",\n \"@crate_index__serde-1.0.228//:serde\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"serde\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=url\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.5.7\",\n)\n" } }, "crate_index__utf8_iter-1.0.4": { @@ -11332,7 +11455,7 @@ "https://static.crates.io/crates/wasm-bindgen-backend/0.2.100/download" ], "strip_prefix": "wasm-bindgen-backend-0.2.100", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"wasm_bindgen_backend\",\n deps = [\n \"@crate_index__bumpalo-3.19.0//:bumpalo\",\n \"@crate_index__log-0.4.27//:log\",\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n \"@crate_index__wasm-bindgen-shared-0.2.100//:wasm_bindgen_shared\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=wasm-bindgen-backend\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.100\",\n)\n" + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"wasm_bindgen_backend\",\n deps = [\n \"@crate_index__bumpalo-3.19.0//:bumpalo\",\n \"@crate_index__log-0.4.29//:log\",\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n \"@crate_index__wasm-bindgen-shared-0.2.100//:wasm_bindgen_shared\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=wasm-bindgen-backend\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.100\",\n)\n" } }, "crate_index__wasm-bindgen-futures-0.4.50": { @@ -12023,6 +12146,22 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"writeable\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=writeable\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.6.2\",\n)\n" } }, + "crate_index__x509-cert-0.2.5": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/x509-cert/0.2.5/download" + ], + "strip_prefix": "x509-cert-0.2.5", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"x509_cert\",\n deps = [\n \"@crate_index__const-oid-0.9.6//:const_oid\",\n \"@crate_index__der-0.7.10//:der\",\n \"@crate_index__sha1-0.10.6//:sha1\",\n \"@crate_index__signature-2.2.0//:signature\",\n \"@crate_index__spki-0.7.3//:spki\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"builder\",\n \"default\",\n \"pem\",\n \"sha1\",\n \"signature\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=x509-cert\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.5\",\n)\n" + } + }, "crate_index__yoke-0.8.1": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { @@ -12135,6 +12274,22 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"zeroize\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=zeroize\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.8.1\",\n)\n" } }, + "crate_index__zeroize_derive-1.4.3": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "patch_args": [], + "patch_tool": "", + "patches": [], + "remote_patch_strip": 1, + "sha256": "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e", + "type": "tar.gz", + "urls": [ + "https://static.crates.io/crates/zeroize_derive/1.4.3/download" + ], + "strip_prefix": "zeroize_derive-1.4.3", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'lowrisc_opentitan'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"zeroize_derive\",\n deps = [\n \"@crate_index__proc-macro2-1.0.95//:proc_macro2\",\n \"@crate_index__quote-1.0.40//:quote\",\n \"@crate_index__syn-2.0.104//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=zeroize_derive\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.4.3\",\n)\n" + } + }, "crate_index__zerotrie-0.2.3": { "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", "attributes": { diff --git a/sw/host/hsmtool/BUILD b/sw/host/hsmtool/BUILD index 7443f11f39e01..6c89e88760c7d 100644 --- a/sw/host/hsmtool/BUILD +++ b/sw/host/hsmtool/BUILD @@ -109,6 +109,13 @@ rust_library( "src/commands/kdf/generate.rs", "src/commands/kdf/import.rs", "src/commands/kdf/mod.rs", + "src/commands/mldsa/export.rs", + "src/commands/mldsa/export_csr.rs", + "src/commands/mldsa/generate.rs", + "src/commands/mldsa/import.rs", + "src/commands/mldsa/mod.rs", + "src/commands/mldsa/sign.rs", + "src/commands/mldsa/verify.rs", "src/commands/mod.rs", "src/commands/object/destroy.rs", "src/commands/object/list.rs", @@ -149,6 +156,7 @@ rust_library( "src/util/escape.rs", "src/util/helper.rs", "src/util/key/ecdsa.rs", + "src/util/key/mldsa.rs", "src/util/key/mod.rs", "src/util/key/rsa.rs", "src/util/mod.rs", @@ -177,6 +185,7 @@ rust_library( "@crate_index//:anyhow", "@crate_index//:base64ct", "@crate_index//:clap", + "@crate_index//:const-oid", "@crate_index//:cryptoki", "@crate_index//:cryptoki-sys", "@crate_index//:der", @@ -186,8 +195,11 @@ rust_library( "@crate_index//:hex", "@crate_index//:indexmap", "@crate_index//:log", + "@crate_index//:ml-dsa", + "@crate_index//:once_cell", "@crate_index//:p256", "@crate_index//:pem-rfc7468", + "@crate_index//:pkcs8", "@crate_index//:rand", "@crate_index//:regex", "@crate_index//:reqwest", @@ -197,9 +209,12 @@ rust_library( "@crate_index//:serde_bytes", "@crate_index//:serde_json", "@crate_index//:sha2", + "@crate_index//:signature", + "@crate_index//:spki", "@crate_index//:strum", "@crate_index//:thiserror", "@crate_index//:typetag", + "@crate_index//:x509-cert", "@crate_index//:zeroize", "@lowrisc_serde_annotate//serde_annotate", ], diff --git a/sw/host/hsmtool/scripts/pkcs11_consts.py b/sw/host/hsmtool/scripts/pkcs11_consts.py index c4d3599748d27..043cb5f5a066b 100644 --- a/sw/host/hsmtool/scripts/pkcs11_consts.py +++ b/sw/host/hsmtool/scripts/pkcs11_consts.py @@ -59,6 +59,13 @@ 'CKM_DSA_PROBABLISTIC_PARAMETER_GEN', # Typo of CKM_DSA_PROBABILISTIC_PARAMETER_GEN ] +# Map of canonical name to list of aliases. +ALIASES = { + 'CKK_ML_DSA': ['CKK_MLDSA', 'MLDSA'], + 'CKM_ML_DSA_KEY_PAIR_GEN': ['CKM_MLDSA_KEY_PAIR_GEN', 'MLDSA_KEY_PAIR_GEN'], + 'CKM_ML_DSA': ['CKM_MLDSA', 'MLDSA'], +} + class EnumGen(object): @@ -124,7 +131,8 @@ def get_names(self): raise Exception( 'Expected objects to all be of uniform type', name, tp, m.group(2)) - names.append(name) + if name not in names: + names.append(name) return (names, tp) @staticmethod @@ -159,29 +167,57 @@ def emit_enum(self, names): """ typename = self.ki_type.split('::')[-1] prefix = len(self.prefix) + 1 - enumerators = map(lambda name: self.to_studlycaps(name[prefix:]), - names) - traits = [ - 'Clone', 'Copy', 'Debug', 'PartialEq', 'Eq', 'Hash' - ] + enumerators = list( + map(lambda name: self.to_studlycaps(name[prefix:]), names)) + traits = ['Clone', 'Copy', 'Debug', 'PartialEq', 'Eq', 'Hash'] if self.serde: traits.extend(['serde::Serialize', 'serde::Deserialize']) if self.strum: traits.extend( - ['strum::Display', 'strum::EnumString', 'strum::EnumIter', 'strum::FromRepr']) + ['strum::Display', 'strum::EnumString', 'strum::EnumIter']) self.emit(f'#[derive({", ".join(traits)})]') self.emit('#[repr(u64)]') self.emit(f'pub enum {typename} {{') for (en, val) in zip(enumerators, names): snake_case = val[4:].lower() if self.serde: - self.emit(f' #[serde(rename="{val}")]') + aliases = ALIASES.get(val, []) + alias_str = ''.join([f', alias="{a}"' for a in aliases]) + self.emit(f' #[serde(rename="{val}"{alias_str})]') if self.strum: - self.emit( - f' #[strum(serialize="{val}", serialize="{en}", serialize="{snake_case}")]' - ) + aliases = ALIASES.get(val, []) + # Also add StudlyCaps version of aliases to strum + alias_enum_names = [ + self.to_studlycaps(a[prefix:]) for a in aliases + ] + alias_snake_names = [a[prefix:].lower() for a in aliases] + strum_aliases = aliases + alias_enum_names + alias_snake_names + alias_str = ''.join( + [f', serialize="{a}"' for a in strum_aliases]) + self.emit(f' #[strum(serialize="{val}", serialize="{en}", ' + f'serialize="{snake_case}"{alias_str})]') self.emit(f' {en} = {val},') - self.emit(f' Unknown{typename} = u64::MAX,') + self.emit(f' Unknown{typename}(u64) = u64::MAX,') + self.emit('}') + self.emit() + self.emit(f'impl From for {typename} {{') + self.emit(' fn from(val: u64) -> Self {') + self.emit(' match val {') + for (en, val) in zip(enumerators, names): + self.emit(f' {val} => Self::{en},') + self.emit(f' _ => Self::Unknown{typename}(val),') + self.emit(' }') + self.emit(' }') + self.emit('}') + self.emit() + self.emit(f'impl From<{typename}> for u64 {{') + self.emit(f' fn from(val: {typename}) -> Self {{') + self.emit(' match val {') + for (en, val) in zip(enumerators, names): + self.emit(f' {typename}::{en} => {val},') + self.emit(f' {typename}::Unknown{typename}(x) => x,') + self.emit(' }') + self.emit(' }') self.emit('}') def emit_conversions(self, reprtype): @@ -191,22 +227,6 @@ def emit_conversions(self, reprtype): reprtype: str; The low-level PKCS#11 representation type. """ typename = self.ki_type.split('::')[-1] - if self.strum: - self.emit(f""" -impl From for {typename} {{ - fn from(val: u64) -> Self {{ - {typename}::from_repr(val) - .unwrap_or({typename}::Unknown{typename}) - }} -}} - -impl From<{typename}> for u64 {{ - fn from(val: {typename}) -> u64 {{ - val as u64 - }} -}} -""") - self.emit(f""" impl From<{self.ki_type}> for {typename} {{ fn from(val: {self.ki_type}) -> Self {{ diff --git a/sw/host/hsmtool/src/commands/mldsa/export.rs b/sw/host/hsmtool/src/commands/mldsa/export.rs new file mode 100644 index 0000000000000..9a97f08c33dcc --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/export.rs @@ -0,0 +1,95 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Result, anyhow}; +use cryptoki::object::{Attribute, ObjectHandle}; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fs; +use std::path::PathBuf; + +use crate::commands::{BasicResult, Dispatch}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::{AttributeMap, KeyType, ObjectClass}; +use crate::util::helper; +use crate::util::key::KeyEncoding; +use crate::util::key::mldsa; +use crate::util::wrap::{Wrap, WrapPrivateKey}; + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct Export { + /// Unique identifier of the key. + #[arg(long)] + id: Option, + /// Label of the key. + #[arg(short, long)] + label: Option, + /// Export the private key. + #[arg(long)] + private: bool, + /// Wrap the exported key with a wrapping key. + #[arg(long)] + wrap: Option, + /// Wrapping key mechanism. Required when wrap is specified. + #[arg(long, default_value = "aes-key-wrap-pad")] + wrap_mechanism: Option, + /// Encoding format of the exported key. + #[arg(short, long, value_enum, default_value = "der")] + format: KeyEncoding, + /// Path to the file where the key will be saved. + filename: PathBuf, +} + +impl Export { + fn export(&self, session: &Session, object: ObjectHandle) -> Result<()> { + let map = AttributeMap::from_object(session, object)?; + if self.private { + let key = mldsa::MldsaSigningKey::try_from(&map)?; + mldsa::save_private_key(&self.filename, &key, self.format)?; + } else { + let key = mldsa::MldsaVerifyingKey::try_from(&map)?; + mldsa::save_public_key(&self.filename, &key, self.format)?; + } + Ok(()) + } + + fn wrap_key(&self, session: &Session, object: ObjectHandle) -> Result<()> { + let wrapper: Wrap = self + .wrap_mechanism + .ok_or(anyhow!("wrap_mechanism is required when wrap is specified"))? + .into(); + let wrapped = wrapper.wrap(session, object, self.wrap.as_deref())?; + fs::write(&self.filename, &wrapped)?; + Ok(()) + } +} + +#[typetag::serde(name = "mldsa-export")] +impl Dispatch for Export { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + let mut attrs = helper::search_spec(self.id.as_deref(), self.label.as_deref())?; + attrs.push(Attribute::KeyType(KeyType::MlDsa.try_into()?)); + if self.private { + attrs.push(Attribute::Class(ObjectClass::PrivateKey.try_into()?)); + } else { + attrs.push(Attribute::Class(ObjectClass::PublicKey.try_into()?)); + } + let object = helper::find_one_object(session, &attrs)?; + + if self.wrap.is_some() { + self.wrap_key(session, object)?; + } else { + self.export(session, object)?; + } + Ok(Box::::default()) + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/export_csr.rs b/sw/host/hsmtool/src/commands/mldsa/export_csr.rs new file mode 100644 index 0000000000000..382646bd8af14 --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/export_csr.rs @@ -0,0 +1,145 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Result, anyhow}; +use cryptoki::mechanism::Mechanism; +use cryptoki::mechanism::vendor_defined::VendorDefinedMechanism; +use cryptoki::object::Attribute; +use cryptoki::session::Session; +use der::{Encode, EncodePem}; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fs; +use std::path::PathBuf; +use std::str::FromStr; +use x509_cert::name::Name; +use x509_cert::request::{CertReq, CertReqInfo}; +use x509_cert::spki::{AlgorithmIdentifierOwned, SubjectPublicKeyInfoOwned}; + +use crate::commands::{BasicResult, Dispatch}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::{AttributeMap, KeyType, MechanismType, ObjectClass}; +use crate::util::helper; +use crate::util::key::mldsa; + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct ExportCsr { + /// Unique identifier of the key to use for the CSR. + #[arg(long)] + id: Option, + /// Label of the key to use for the CSR. + #[arg(short, long)] + label: Option, + /// Subject name for the CSR (e.g., "CN=OpenTitan"). + #[arg(long)] + subject: String, + /// Path to the file where the CSR will be saved. + #[arg(short, long)] + output: PathBuf, +} + +impl ExportCsr { + fn run_command(&self, session: &Session) -> Result<()> { + // Find the private key + let mut attrs = helper::search_spec(self.id.as_deref(), self.label.as_deref())?; + attrs.push(Attribute::Class(ObjectClass::PrivateKey.try_into()?)); + attrs.push(Attribute::KeyType(KeyType::MlDsa.try_into()?)); + let private_key = helper::find_one_object(session, &attrs)?; + + // Determine public key label + let pub_label_string = if let Some(l) = self.label.as_deref() { + if l.ends_with(".priv") { + Some(l.replace(".priv", ".pub")) + } else { + Some(l.to_string()) + } + } else { + None + }; + let pub_label = pub_label_string.as_deref(); + + // Find the public key (needed for CSR) + let mut pub_attrs = helper::search_spec(self.id.as_deref(), pub_label)?; + pub_attrs.push(Attribute::Class(ObjectClass::PublicKey.try_into()?)); + pub_attrs.push(Attribute::KeyType(KeyType::MlDsa.try_into()?)); + let public_key = helper::find_one_object(session, &pub_attrs)?; + + // Get public key value + let map = AttributeMap::from_object(session, public_key)?; + let key = mldsa::MldsaVerifyingKey::try_from(&map)?; + let pub_key_bytes = key.encode(); + + // Construct Subject Name + let subject = + Name::from_str(&self.subject).map_err(|e| anyhow!("Invalid subject: {}", e))?; + + // Create CertReqInfo + let algorithm = AlgorithmIdentifierOwned { + oid: key.oid(), + parameters: None, + }; + let subject_public_key_info = SubjectPublicKeyInfoOwned { + algorithm: algorithm.clone(), + subject_public_key: x509_cert::der::asn1::BitString::from_bytes(&pub_key_bytes) + .map_err(|e| anyhow!("Invalid public key bytes: {}", e))?, + }; + + let info = CertReqInfo { + version: x509_cert::request::Version::V1, + subject, + public_key: subject_public_key_info, + attributes: Default::default(), + }; + + // Serialize Info to sign + let tbs_bytes = info + .to_der() + .map_err(|e| anyhow!("Failed to encode CertReqInfo: {}", e))?; + + // Sign the request using HSM + // Using VendorDefinedMechanism for MLDSA signature generation + // to avoid type mismatch with native Mechanism::MlDsa if params are tricky. + let mechanism = Mechanism::VendorDefined(VendorDefinedMechanism::new::<()>( + MechanismType::MlDsa.try_into()?, + None, + )); + + let signature_bytes = session + .sign(&mechanism, private_key, &tbs_bytes) + .map_err(|e| anyhow!("HSM signing failed: {}", e))?; + + let signature = x509_cert::der::asn1::BitString::from_bytes(&signature_bytes) + .map_err(|e| anyhow!("Invalid signature bytes: {}", e))?; + + let cert_req = CertReq { + info, + algorithm, + signature, + }; + + // Encode to PEM + let pem = cert_req + .to_pem(Default::default()) + .map_err(|e| anyhow!("Failed to encode CSR to PEM: {}", e))?; + + fs::write(&self.output, pem.as_bytes())?; + + Ok(()) + } +} + +#[typetag::serde(name = "mldsa-export-csr")] +impl Dispatch for ExportCsr { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + self.run_command(session)?; + Ok(Box::::default()) + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/generate.rs b/sw/host/hsmtool/src/commands/mldsa/generate.rs new file mode 100644 index 0000000000000..9b896055eb621 --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/generate.rs @@ -0,0 +1,148 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::Result; +use cryptoki::mechanism::Mechanism; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::str::FromStr; + +use crate::commands::{BasicResult, Dispatch}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::{AttrData, AttributeMap, AttributeType}; +use crate::util::helper; +use crate::util::signing::MlDsaDomain; + +#[derive(clap::ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +pub enum MlDsaType { + #[serde(rename = "44")] + #[value(name = "44")] + MlDsa44 = 1, + #[serde(rename = "65")] + #[value(name = "65")] + MlDsa65 = 2, + #[default] + #[serde(rename = "87")] + #[value(name = "87")] + MlDsa87 = 3, +} + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct GenerateKeypair { + /// Unique identifier for the generated key. + #[arg(long)] + id: Option, + /// Label for the generated key. + #[arg(short, long)] + label: Option, + /// Use this key for wrapping other keys. + #[arg(long)] + wrapping: bool, + /// Permit the generated key to be extractable. + #[arg(long)] + extractable: bool, + /// MLDSA algorithm type for the key. + #[arg(long, value_enum, default_value_t = MlDsaType::MlDsa87)] + #[serde(default)] + mldsa_type: MlDsaType, + /// The ML-DSA domain. + #[arg(long, value_enum, default_value_t = MlDsaDomain::Pure)] + domain: MlDsaDomain, + /// Template for creating the public key. + #[arg(long)] + public_template: Option, + /// Template for creating the private key. + #[arg(long)] + private_template: Option, +} + +impl GenerateKeypair { + const PUBLIC_TEMPLATE: &str = r#"{ + "CKA_CLASS": "CKO_PUBLIC_KEY", + "CKA_KEY_TYPE": "CKK_MLDSA", + "CKA_TOKEN": true, + "CKA_VERIFY": true + }"#; + + const PRIVATE_TEMPLATE: &str = r#"{ + "CKA_CLASS": "CKO_PRIVATE_KEY", + "CKA_KEY_TYPE": "CKK_MLDSA", + "CKA_TOKEN": true, + "CKA_PRIVATE": true, + "CKA_SENSITIVE": true, + "CKA_SIGN": true + }"#; +} + +#[typetag::serde(name = "mldsa-generate-keypair")] +impl Dispatch for GenerateKeypair { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + helper::no_object_exists(session, self.id.as_deref(), self.label.as_deref())?; + let id = AttrData::Str(self.id.as_ref().cloned().unwrap_or_else(helper::random_id)); + let result = Box::new(BasicResult { + success: true, + id: id.clone(), + label: AttrData::Str(self.label.as_ref().cloned().unwrap_or_default()), + value: None, + error: None, + }); + + let mut public_template = + AttributeMap::from_str(Self::PUBLIC_TEMPLATE).expect("error in PUBLIC_TEMPLATE"); + let mut private_template = + AttributeMap::from_str(Self::PRIVATE_TEMPLATE).expect("error in PRIVATE_TEMPLATE"); + public_template.insert(AttributeType::Id, id.clone()); + public_template.insert(AttributeType::Label, result.label.clone()); + + public_template.insert( + AttributeType::ParameterSet, + AttrData::from(self.mldsa_type as u64), + ); + + if let Some(tpl) = &self.public_template { + public_template.merge(tpl.clone()); + } + + private_template.insert(AttributeType::Id, id); + private_template.insert(AttributeType::Label, result.label.clone()); + if let Some(tpl) = &self.private_template { + private_template.merge(tpl.clone()); + } + + if self.wrapping { + public_template.insert(AttributeType::Wrap, AttrData::from(true)); + private_template.insert(AttributeType::Unwrap, AttrData::from(true)); + } + if self.extractable { + public_template.insert(AttributeType::Extractable, AttrData::from(true)); + private_template.insert(AttributeType::Extractable, AttrData::from(true)); + } + + log::info!( + "public_template = {}", + serde_json::to_string_pretty(&public_template)? + ); + log::info!( + "private_template = {}", + serde_json::to_string_pretty(&private_template)? + ); + + let public_template = public_template.to_vec()?; + let private_template = private_template.to_vec()?; + + let mechanism = Mechanism::MlDsaKeyPairGen; + + let (_pubkey, _privkey) = + session.generate_key_pair(&mechanism, &public_template, &private_template)?; + Ok(result) + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/import.rs b/sw/host/hsmtool/src/commands/mldsa/import.rs new file mode 100644 index 0000000000000..4d0ffb4e2a6ae --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/import.rs @@ -0,0 +1,155 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Result, anyhow}; +use cryptoki::object::ObjectHandle; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fs; +use std::path::PathBuf; +use std::str::FromStr; + +use crate::commands::{BasicResult, Dispatch}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::{AttrData, AttributeMap, AttributeType}; +use crate::util::helper; +use crate::util::key::mldsa; +use crate::util::wrap::{Wrap, WrapPrivateKey}; + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct Import { + /// Unique identifier for the imported key. + #[arg(long)] + id: Option, + /// Label for the imported key. + #[arg(short, long)] + label: Option, + /// Import a private key. + #[arg(long)] + private: bool, + /// Unwrap the imported key with a wrapping key. + #[arg(long)] + unwrap: Option, + /// Wrapping key mechanism. Required when unwrap is specified. + #[arg(long, default_value = "aes-key-wrap-pad")] + unwrap_mechanism: Option, + /// Template for creating the public key. + #[arg(long)] + public_template: Option, + /// Template for creating the private key. + #[arg(long)] + private_template: Option, + /// Path to the file containing the key to import. + filename: PathBuf, +} + +impl Import { + const PUBLIC_TEMPLATE: &str = r#"{ + "CKA_CLASS": "CKO_PUBLIC_KEY", + "CKA_KEY_TYPE": "CKK_MLDSA", + "CKA_TOKEN": true, + "CKA_VERIFY": true + }"#; + + const PRIVATE_TEMPLATE: &str = r#"{ + "CKA_CLASS": "CKO_PRIVATE_KEY", + "CKA_KEY_TYPE": "CKK_MLDSA", + "CKA_TOKEN": true, + "CKA_PRIVATE": true, + "CKA_SENSITIVE": true, + "CKA_SIGN": true + }"#; + + fn import(&self, session: &Session, id: AttrData, label: AttrData) -> Result { + let mut template = if self.private { + let key = mldsa::load_private_key(&self.filename)?; + let mut template = AttributeMap::try_from(&key)?; + template.merge( + AttributeMap::from_str(Self::PRIVATE_TEMPLATE).expect("error in PRIVATE_TEMPLATE"), + ); + if let Some(tpl) = &self.private_template { + template.merge(tpl.clone()); + } + template + } else { + let key = mldsa::load_public_key(&self.filename)?; + let mut template = AttributeMap::try_from(&key)?; + template.merge( + AttributeMap::from_str(Self::PUBLIC_TEMPLATE).expect("error in PUBLIC_TEMPLATE"), + ); + if let Some(tpl) = &self.public_template { + template.merge(tpl.clone()); + } + template + }; + + template.insert(AttributeType::Id, id); + template.insert(AttributeType::Label, label); + + log::info!("template = {}", serde_json::to_string_pretty(&template)?); + + let template_vec = template.to_vec()?; + Ok(session.create_object(&template_vec)?) + } + + fn unwrap_key(&self, session: &Session, id: AttrData, label: AttrData) -> Result { + let wrapper: Wrap = self + .unwrap_mechanism + .ok_or(anyhow!( + "unwrap_mechanism is required when unwrap is specified" + ))? + .into(); + + let mut template = if self.private { + AttributeMap::from_str(Self::PRIVATE_TEMPLATE).expect("error in PRIVATE_TEMPLATE") + } else { + AttributeMap::from_str(Self::PUBLIC_TEMPLATE).expect("error in PUBLIC_TEMPLATE") + }; + template.insert(AttributeType::Id, id); + template.insert(AttributeType::Label, label); + + if self.private { + if let Some(tpl) = &self.private_template { + template.merge(tpl.clone()); + } + } else if let Some(tpl) = &self.public_template { + template.merge(tpl.clone()); + } + + let wrapped_data = fs::read(&self.filename)?; + wrapper.unwrap(session, &wrapped_data, self.unwrap.as_deref(), &template) + } +} + +#[typetag::serde(name = "mldsa-import")] +impl Dispatch for Import { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + helper::no_object_exists(session, self.id.as_deref(), self.label.as_deref())?; + let id = AttrData::Str(self.id.as_ref().cloned().unwrap_or_else(helper::random_id)); + let label = AttrData::Str(self.label.as_ref().cloned().unwrap_or_default()); + + let result = Box::new(BasicResult { + success: true, + id: id.clone(), + label: label.clone(), + value: None, + error: None, + }); + + if self.unwrap.is_some() { + self.unwrap_key(session, id, label)?; + } else { + self.import(session, id, label)?; + } + Ok(result) + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/mod.rs b/sw/host/hsmtool/src/commands/mldsa/mod.rs new file mode 100644 index 0000000000000..bc62db0d7dff6 --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/mod.rs @@ -0,0 +1,60 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::Result; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; + +use crate::commands::Dispatch; +use crate::module::Module; + +pub mod export; +pub mod export_csr; +pub mod generate; +pub mod import; +pub mod sign; +pub mod verify; + +#[derive(clap::Subcommand, Debug, Serialize, Deserialize)] +pub enum Mldsa { + GenerateKeypair(generate::GenerateKeypair), + Export(export::Export), + ExportCsr(export_csr::ExportCsr), + Import(import::Import), + Sign(sign::Sign), + Verify(verify::Verify), +} + +#[typetag::serde(name = "__mldsa__")] +impl Dispatch for Mldsa { + fn run( + &self, + context: &dyn Any, + hsm: &Module, + session: Option<&Session>, + ) -> Result> { + match self { + Mldsa::GenerateKeypair(x) => x.run(context, hsm, session), + Mldsa::Export(x) => x.run(context, hsm, session), + Mldsa::ExportCsr(x) => x.run(context, hsm, session), + Mldsa::Import(x) => x.run(context, hsm, session), + Mldsa::Sign(x) => x.run(context, hsm, session), + Mldsa::Verify(x) => x.run(context, hsm, session), + } + } + fn leaf(&self) -> &dyn Dispatch + where + Self: Sized, + { + match self { + Mldsa::GenerateKeypair(x) => x.leaf(), + Mldsa::Export(x) => x.leaf(), + Mldsa::ExportCsr(x) => x.leaf(), + Mldsa::Import(x) => x.leaf(), + Mldsa::Sign(x) => x.leaf(), + Mldsa::Verify(x) => x.leaf(), + } + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/sign.rs b/sw/host/hsmtool/src/commands/mldsa/sign.rs new file mode 100644 index 0000000000000..e5c6ebd415e96 --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/sign.rs @@ -0,0 +1,81 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Result, anyhow}; +use cryptoki::object::Attribute; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fs; +use std::ops::Range; +use std::path::PathBuf; + +use crate::commands::{Dispatch, SignResult}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::KeyType; +use crate::util::helper; +use crate::util::signing::{MlDsaDomain, SignData}; + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct Sign { + /// Unique identifier of the key to use for signing. + #[arg(long)] + id: Option, + /// Label of the key to use for signing. + #[arg(short, long)] + label: Option, + /// Format of the input data. + #[arg(short, long, default_value = "sha256-hash", help=SignData::HELP)] + format: SignData, + /// The ML-DSA domain (pure or pre-hashed). + #[arg(long, default_value = "pure")] + domain: MlDsaDomain, + /// Path to the file where the signature will be saved. + #[arg(short, long)] + output: Option, + /// Update the given byte range in the input file with the signature. + #[arg(short, long, value_parser=helper::parse_range)] + update_in_place: Option>, + /// Path to the file containing the data to be signed. + input: PathBuf, +} + +#[typetag::serde(name = "mldsa-sign")] +impl Dispatch for Sign { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + let mut attrs = helper::search_spec(self.id.as_deref(), self.label.as_deref())?; + attrs.push(Attribute::KeyType(KeyType::MlDsa.try_into()?)); + attrs.push(Attribute::Sign(true)); + let object = helper::find_one_object(session, &attrs)?; + + let data = fs::read(&self.input)?; + // TODO: decide whether domain preparation should be done in this program or if the HSM is expected to do it. + let data = self.format.mldsa_prepare(self.domain, &data)?; + let mechanism = self.format.mechanism(KeyType::MlDsa)?; + let result = session.sign(&mechanism, object, &data)?; + if let Some(output) = &self.output { + fs::write(output, &result)?; + } + if let Some(range) = &self.update_in_place { + let mut data = fs::read(&self.input)?; + if let Some(slice) = data.get_mut(range.clone()) { + slice.copy_from_slice(&result); + } else { + return Err(anyhow!("Invalid range on input file: {range:?}")); + } + fs::write(&self.input, &data)?; + } + Ok(Box::new(SignResult { + digest: data, + signature: result, + })) + } +} diff --git a/sw/host/hsmtool/src/commands/mldsa/verify.rs b/sw/host/hsmtool/src/commands/mldsa/verify.rs new file mode 100644 index 0000000000000..5b153d9f47ba7 --- /dev/null +++ b/sw/host/hsmtool/src/commands/mldsa/verify.rs @@ -0,0 +1,77 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Result, anyhow}; +use cryptoki::object::Attribute; +use cryptoki::session::Session; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::fs; +use std::ops::Range; +use std::path::PathBuf; + +use crate::commands::{BasicResult, Dispatch}; +use crate::error::HsmError; +use crate::module::Module; +use crate::util::attribute::KeyType; +use crate::util::helper; +use crate::util::signing::{MlDsaDomain, SignData}; + +#[derive(clap::Args, Debug, Serialize, Deserialize)] +pub struct Verify { + /// Unique identifier of the key to use for verification. + #[arg(long)] + id: Option, + /// Label of the key to use for verification. + #[arg(short, long)] + label: Option, + /// Format of the input data. + #[arg(short, long, default_value = "sha256-hash", help=SignData::HELP)] + format: SignData, + /// The ML-DSA domain (pure or pre-hashed). + #[arg(long, default_value = "pure")] + domain: MlDsaDomain, + /// The signature is at the given byte range of the input file. + #[arg(short, long, value_parser=helper::parse_range, conflicts_with="signature")] + signature_at: Option>, + /// Path to the file containing the data to be verified. + input: PathBuf, + /// Path to the file containing the signature. + #[arg(conflicts_with = "signature_at")] + signature: Option, +} + +#[typetag::serde(name = "mldsa-verify")] +impl Dispatch for Verify { + fn run( + &self, + _context: &dyn Any, + _hsm: &Module, + session: Option<&Session>, + ) -> Result> { + let session = session.ok_or(HsmError::SessionRequired)?; + let mut attrs = helper::search_spec(self.id.as_deref(), self.label.as_deref())?; + attrs.push(Attribute::KeyType(KeyType::MlDsa.try_into()?)); + attrs.push(Attribute::Verify(true)); + let object = helper::find_one_object(session, &attrs)?; + + let data = fs::read(&self.input)?; + // TODO: decide whether domain preparation should be done in this program or if the HSM is expected to do it. + let data = self.format.mldsa_prepare(self.domain, &data)?; + let mechanism = self.format.mechanism(KeyType::MlDsa)?; + let signature = if let Some(filename) = &self.signature { + fs::read(filename)? + } else if let Some(range) = &self.signature_at { + let input = fs::read(&self.input)?; + input + .get(range.clone()) + .ok_or_else(|| anyhow!("Invalid range on input file: {range:?}"))? + .to_vec() + } else { + unreachable!(); + }; + session.verify(&mechanism, object, &data, &signature)?; + Ok(Box::::default()) + } +} diff --git a/sw/host/hsmtool/src/commands/mod.rs b/sw/host/hsmtool/src/commands/mod.rs index 19ecd5d966ccd..27991cddb9338 100644 --- a/sw/host/hsmtool/src/commands/mod.rs +++ b/sw/host/hsmtool/src/commands/mod.rs @@ -16,6 +16,7 @@ mod aes; mod ecdsa; mod exec; mod kdf; +mod mldsa; mod object; mod rsa; mod spx; @@ -48,6 +49,8 @@ pub enum Commands { #[command(subcommand)] Kdf(kdf::Kdf), #[command(subcommand)] + Mldsa(mldsa::Mldsa), + #[command(subcommand)] Object(object::Object), #[command(subcommand)] Rsa(rsa::Rsa), @@ -70,6 +73,7 @@ impl Dispatch for Commands { Commands::Ecdsa(x) => x.run(context, hsm, session), Commands::Exec(x) => x.run(context, hsm, session), Commands::Kdf(x) => x.run(context, hsm, session), + Commands::Mldsa(x) => x.run(context, hsm, session), Commands::Object(x) => x.run(context, hsm, session), Commands::Rsa(x) => x.run(context, hsm, session), Commands::Spx(x) => x.run(context, hsm, session), @@ -86,6 +90,7 @@ impl Dispatch for Commands { Commands::Ecdsa(x) => x.leaf(), Commands::Exec(x) => x.leaf(), Commands::Kdf(x) => x.leaf(), + Commands::Mldsa(x) => x.leaf(), Commands::Object(x) => x.leaf(), Commands::Rsa(x) => x.leaf(), Commands::Spx(x) => x.leaf(), diff --git a/sw/host/hsmtool/src/module.rs b/sw/host/hsmtool/src/module.rs index 31ca083ee423e..4f19c79dd1cd1 100644 --- a/sw/host/hsmtool/src/module.rs +++ b/sw/host/hsmtool/src/module.rs @@ -4,6 +4,7 @@ use anyhow::{Context, Result}; use cryptoki::context::CInitializeArgs; +use cryptoki::context::CInitializeFlags; use cryptoki::context::Pkcs11; use cryptoki::session::Session; use cryptoki::session::UserType; @@ -53,7 +54,7 @@ pub struct Module { impl Module { pub fn initialize(module: &str) -> Result { let pkcs11 = Pkcs11::new(module)?; - pkcs11.initialize(CInitializeArgs::OsThreads)?; + pkcs11.initialize(CInitializeArgs::new(CInitializeFlags::OS_LOCKING_OK))?; Ok(Module { pkcs11, session: None, @@ -99,7 +100,7 @@ impl Module { let slot = self.get_token(token)?; let session = self.pkcs11.open_rw_session(slot)?; if let Some(user) = user { - let pin = pin.map(|x| AuthPin::new(x.to_owned())); + let pin = pin.map(|x| AuthPin::new(x.to_owned().into())); session .login(user, pin.as_ref()) .context("Failed HSM Login")?; diff --git a/sw/host/hsmtool/src/util/attribute/attr.rs b/sw/host/hsmtool/src/util/attribute/attr.rs index ff7be84116fdc..59667f05bdd57 100644 --- a/sw/host/hsmtool/src/util/attribute/attr.rs +++ b/sw/host/hsmtool/src/util/attribute/attr.rs @@ -7,8 +7,9 @@ use std::str::FromStr; use std::sync::LazyLock; use anyhow::Result; -use cryptoki::object::{Attribute, AttributeInfo, ObjectHandle}; +use cryptoki::object::{Attribute, AttributeInfo, ObjectHandle, ParameterSetType}; use cryptoki::session::Session; +use cryptoki::types::Ulong; use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use strum::IntoEnumIterator; @@ -100,6 +101,10 @@ fn into_kv(attr: &Attribute) -> Result<(AttributeType, AttrData)> { AttrData::from(val), )) } + Attribute::ParameterSet(val) => Ok(( + AttributeType::from(attr.attribute_type()), + AttrData::from(**val), + )), Attribute::Class(object_class) => { let val = ObjectClass::from(*object_class); Ok(( @@ -200,6 +205,17 @@ fn from_kv(atype: AttributeType, data: &AttrData) -> Result { AttributeType::NeverExtractable => Ok(Attribute::NeverExtractable(data.try_into()?)), AttributeType::ObjectId => Ok(Attribute::ObjectId(data.try_into()?)), AttributeType::Owner => Ok(Attribute::Owner(data.try_into()?)), + AttributeType::ParameterSet => { + // TODO: Remove this once cryptoki supports the ML-DSA ParameterSetType. + let val = u64::try_from(data)?; + match ParameterSetType::try_from(Ulong::from(val)) { + Ok(p) => Ok(Attribute::ParameterSet(p)), + Err(e) => { + log::error!("ParameterSetType conversion failed for {}: {:?}", val, e); + Err(AttributeError::InvalidDataType.into()) + } + } + } AttributeType::Prime => Ok(Attribute::Prime(data.try_into()?)), AttributeType::Prime1 => Ok(Attribute::Prime1(data.try_into()?)), AttributeType::Prime2 => Ok(Attribute::Prime2(data.try_into()?)), @@ -249,6 +265,10 @@ impl AttributeMap { pub fn all() -> &'static [cryptoki::object::AttributeType] { static VALID_TYPES: LazyLock> = LazyLock::new(|| { AttributeType::iter() + // TODO: Skip KeyGenMechanism because querying it for MLDSA keys + // triggers a mechanism validation error in the cryptoki library. + // Remove this once cryptoki supports the MLDSA keygenmechanism. + .filter(|&a| a != AttributeType::KeyGenMechanism) .map(|a| Ok(a.try_into()?)) .filter(|a| a.is_ok()) .collect::>>() diff --git a/sw/host/hsmtool/src/util/attribute/data.rs b/sw/host/hsmtool/src/util/attribute/data.rs index 89b0e2a124d16..d46e57b8998b9 100644 --- a/sw/host/hsmtool/src/util/attribute/data.rs +++ b/sw/host/hsmtool/src/util/attribute/data.rs @@ -33,6 +33,7 @@ pub enum AttrData { ObjectClass(ObjectClass), Redacted(Redacted), Str(String), + ByteString(Vec), List(Vec), } @@ -90,6 +91,12 @@ impl From<&[u8]> for AttrData { } } +impl From> for AttrData { + fn from(v: Vec) -> Self { + AttrData::ByteString(v) + } +} + pub fn unhex(ch: u8) -> u8 { match ch { b'0'..=b'9' => ch - b'0', @@ -105,6 +112,7 @@ impl TryFrom<&AttrData> for Vec { static HEX: LazyLock = LazyLock::new(|| Regex::new("^[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2})*$").unwrap()); match a { + AttrData::ByteString(v) => Ok(v.clone()), AttrData::Str(v) => { if HEX.is_match(v) { // The format of a hex string is "01:23:45:67[:...]". diff --git a/sw/host/hsmtool/src/util/key/mldsa.rs b/sw/host/hsmtool/src/util/key/mldsa.rs new file mode 100644 index 0000000000000..3a5acaa77ee24 --- /dev/null +++ b/sw/host/hsmtool/src/util/key/mldsa.rs @@ -0,0 +1,439 @@ +// Copyright lowRISC contributors (OpenTitan project). +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{Context, Result, anyhow}; +use const_oid::ObjectIdentifier; +use der::{Encode, EncodePem}; +use ml_dsa::{ + EncodedSigningKey, EncodedVerifyingKey, MlDsa44, MlDsa65, MlDsa87, SigningKey, VerifyingKey, +}; +use pem_rfc7468; +use pkcs8::{DecodePrivateKey, PrivateKeyInfo}; +use spki::{AssociatedAlgorithmIdentifier, DecodePublicKey, EncodePublicKey}; +use std::convert::{AsRef, TryFrom}; +use std::path::Path; + +use super::KeyEncoding; +use crate::error::HsmError; +use crate::util::attribute::{AttrData, AttributeMap, AttributeType, KeyType, ObjectClass}; + +pub enum MldsaSigningKey { + V44(Box>), + V65(Box>), + V87(Box>), +} + +impl MldsaSigningKey { + pub fn encode(&self) -> Vec { + match self { + Self::V44(k) => k.encode().to_vec(), + Self::V65(k) => k.encode().to_vec(), + Self::V87(k) => k.encode().to_vec(), + } + } + + pub fn parameter_set(&self) -> u64 { + match self { + Self::V44(_) => 1, + Self::V65(_) => 2, + Self::V87(_) => 3, + } + } + + pub fn oid(&self) -> ObjectIdentifier { + match self { + Self::V44(_) => MlDsa44::ALGORITHM_IDENTIFIER.oid, + Self::V65(_) => MlDsa65::ALGORITHM_IDENTIFIER.oid, + Self::V87(_) => MlDsa87::ALGORITHM_IDENTIFIER.oid, + } + } +} + +pub enum MldsaVerifyingKey { + V44(Box>), + V65(Box>), + V87(Box>), +} + +impl MldsaVerifyingKey { + pub fn encode(&self) -> Vec { + match self { + Self::V44(k) => k.encode().to_vec(), + Self::V65(k) => k.encode().to_vec(), + Self::V87(k) => k.encode().to_vec(), + } + } + + pub fn parameter_set(&self) -> u64 { + match self { + Self::V44(_) => 1, + Self::V65(_) => 2, + Self::V87(_) => 3, + } + } + + pub fn oid(&self) -> ObjectIdentifier { + match self { + Self::V44(_) => MlDsa44::ALGORITHM_IDENTIFIER.oid, + Self::V65(_) => MlDsa65::ALGORITHM_IDENTIFIER.oid, + Self::V87(_) => MlDsa87::ALGORITHM_IDENTIFIER.oid, + } + } +} + +fn _load_private_key(path: &Path) -> Result { + let data = std::fs::read(path)?; + let der_bytes = if let Ok((_label, bytes)) = pem_rfc7468::decode_vec(&data) { + bytes + } else { + data + }; + + if let Ok(key) = SigningKey::::from_pkcs8_der(&der_bytes) { + Ok(MldsaSigningKey::V44(Box::new(key))) + } else if let Ok(key) = SigningKey::::from_pkcs8_der(&der_bytes) { + Ok(MldsaSigningKey::V65(Box::new(key))) + } else if let Ok(key) = SigningKey::::from_pkcs8_der(&der_bytes) { + Ok(MldsaSigningKey::V87(Box::new(key))) + } else { + Err(anyhow!( + "Could not decode MLDSA private key from PKCS#8 DER" + )) + } +} + +pub fn load_private_key>(path: P) -> Result { + _load_private_key(path.as_ref()) +} + +impl TryFrom<&MldsaSigningKey> for AttributeMap { + type Error = HsmError; + fn try_from(k: &MldsaSigningKey) -> std::result::Result { + let mut attr = AttributeMap::default(); + attr.insert( + AttributeType::Class, + AttrData::ObjectClass(ObjectClass::PrivateKey), + ); + attr.insert(AttributeType::KeyType, AttrData::KeyType(KeyType::MlDsa)); + attr.insert( + AttributeType::ParameterSet, + AttrData::from(k.parameter_set()), + ); + attr.insert(AttributeType::Value, AttrData::from(k.encode())); + Ok(attr) + } +} + +impl TryFrom<&AttributeMap> for MldsaSigningKey { + type Error = HsmError; + fn try_from(a: &AttributeMap) -> std::result::Result { + let class: ObjectClass = a + .get(&AttributeType::Class) + .ok_or_else(|| HsmError::KeyError("missing class".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + let key_type: KeyType = a + .get(&AttributeType::KeyType) + .ok_or_else(|| HsmError::KeyError("missing key_type".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + if class != ObjectClass::PrivateKey || key_type != KeyType::MlDsa { + return Err(HsmError::KeyError("bad key type".into())); + } + + let value: Vec = a + .get(&AttributeType::Value) + .ok_or_else(|| HsmError::KeyError("missing value".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + + // Try to determine the parameter set from AttributeType::ParameterSet if available + let parameter_set = a + .get(&AttributeType::ParameterSet) + .and_then(|d| u64::try_from(d).ok()); + + match parameter_set { + Some(1) => { + let arr = EncodedSigningKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-44 key length".into()))?; + Ok(MldsaSigningKey::V44(Box::new( + SigningKey::::decode(&arr), + ))) + } + Some(2) => { + let arr = EncodedSigningKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-65 key length".into()))?; + Ok(MldsaSigningKey::V65(Box::new( + SigningKey::::decode(&arr), + ))) + } + Some(3) => { + let arr = EncodedSigningKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-87 key length".into()))?; + Ok(MldsaSigningKey::V87(Box::new( + SigningKey::::decode(&arr), + ))) + } + _ => { + // If parameter set is missing or unknown, try to guess from length + if let Ok(arr) = EncodedSigningKey::::try_from(value.as_slice()) { + Ok(MldsaSigningKey::V44(Box::new( + SigningKey::::decode(&arr), + ))) + } else if let Ok(arr) = EncodedSigningKey::::try_from(value.as_slice()) { + Ok(MldsaSigningKey::V65(Box::new( + SigningKey::::decode(&arr), + ))) + } else if let Ok(arr) = EncodedSigningKey::::try_from(value.as_slice()) { + Ok(MldsaSigningKey::V87(Box::new( + SigningKey::::decode(&arr), + ))) + } else { + Err(HsmError::KeyError( + "Could not decode MLDSA private key".into(), + )) + } + } + } + } +} + +fn _load_public_key(path: &Path) -> Result { + let data = std::fs::read(path)?; + let der_bytes = if let Ok((_label, bytes)) = pem_rfc7468::decode_vec(&data) { + bytes + } else { + data + }; + + if let Ok(key) = VerifyingKey::::from_public_key_der(&der_bytes) { + Ok(MldsaVerifyingKey::V44(Box::new(key))) + } else if let Ok(key) = VerifyingKey::::from_public_key_der(&der_bytes) { + Ok(MldsaVerifyingKey::V65(Box::new(key))) + } else if let Ok(key) = VerifyingKey::::from_public_key_der(&der_bytes) { + Ok(MldsaVerifyingKey::V87(Box::new(key))) + } else { + Err(anyhow!("Could not decode MLDSA public key from SPKI DER")) + } +} + +pub fn load_public_key>(path: P) -> Result { + _load_public_key(path.as_ref()) +} + +impl TryFrom<&MldsaVerifyingKey> for AttributeMap { + type Error = HsmError; + fn try_from(k: &MldsaVerifyingKey) -> std::result::Result { + let mut attr = AttributeMap::default(); + attr.insert( + AttributeType::Class, + AttrData::ObjectClass(ObjectClass::PublicKey), + ); + attr.insert(AttributeType::KeyType, AttrData::KeyType(KeyType::MlDsa)); + attr.insert( + AttributeType::ParameterSet, + AttrData::from(k.parameter_set()), + ); + attr.insert(AttributeType::Value, AttrData::from(k.encode())); + Ok(attr) + } +} + +impl TryFrom<&AttributeMap> for MldsaVerifyingKey { + type Error = HsmError; + fn try_from(a: &AttributeMap) -> std::result::Result { + let class: ObjectClass = a + .get(&AttributeType::Class) + .ok_or_else(|| HsmError::KeyError("missing class".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + let key_type: KeyType = a + .get(&AttributeType::KeyType) + .ok_or_else(|| HsmError::KeyError("missing key_type".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + if class != ObjectClass::PublicKey || key_type != KeyType::MlDsa { + return Err(HsmError::KeyError("bad key type".into())); + } + + let value: Vec = a + .get(&AttributeType::Value) + .ok_or_else(|| HsmError::KeyError("missing value".into()))? + .try_into() + .map_err(HsmError::AttributeError)?; + + let parameter_set = a + .get(&AttributeType::ParameterSet) + .and_then(|d| u64::try_from(d).ok()); + + match parameter_set { + Some(1) => { + let arr = EncodedVerifyingKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-44 key length".into()))?; + Ok(MldsaVerifyingKey::V44(Box::new( + VerifyingKey::::decode(&arr), + ))) + } + Some(2) => { + let arr = EncodedVerifyingKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-65 key length".into()))?; + Ok(MldsaVerifyingKey::V65(Box::new( + VerifyingKey::::decode(&arr), + ))) + } + Some(3) => { + let arr = EncodedVerifyingKey::::try_from(value.as_slice()) + .map_err(|_| HsmError::KeyError("invalid MLDSA-87 key length".into()))?; + Ok(MldsaVerifyingKey::V87(Box::new( + VerifyingKey::::decode(&arr), + ))) + } + _ => { + if let Ok(arr) = EncodedVerifyingKey::::try_from(value.as_slice()) { + Ok(MldsaVerifyingKey::V44(Box::new( + VerifyingKey::::decode(&arr), + ))) + } else if let Ok(arr) = EncodedVerifyingKey::::try_from(value.as_slice()) { + Ok(MldsaVerifyingKey::V65(Box::new( + VerifyingKey::::decode(&arr), + ))) + } else if let Ok(arr) = EncodedVerifyingKey::::try_from(value.as_slice()) { + Ok(MldsaVerifyingKey::V87(Box::new( + VerifyingKey::::decode(&arr), + ))) + } else { + Err(HsmError::KeyError( + "Could not decode MLDSA public key".into(), + )) + } + } + } + } +} + +pub fn save_private_key>( + path: P, + key: &MldsaSigningKey, + enc: KeyEncoding, +) -> Result<()> { + let encoded = key.encode(); + let pk_info = match key { + MldsaSigningKey::V44(_) => PrivateKeyInfo::new(MlDsa44::ALGORITHM_IDENTIFIER, &encoded), + MldsaSigningKey::V65(_) => PrivateKeyInfo::new(MlDsa65::ALGORITHM_IDENTIFIER, &encoded), + MldsaSigningKey::V87(_) => PrivateKeyInfo::new(MlDsa87::ALGORITHM_IDENTIFIER, &encoded), + }; + + let data = match enc { + KeyEncoding::Der | KeyEncoding::Pkcs8Der => pk_info.to_der()?, + KeyEncoding::Pem | KeyEncoding::Pkcs8Pem => { + pk_info.to_pem(pkcs8::LineEnding::LF)?.as_bytes().to_vec() + } + _ => return Err(anyhow!("Unsupported format for MLDSA export: {:?}", enc)), + }; + std::fs::write(path, data).context("Saving private key") +} + +pub fn save_public_key>( + path: P, + key: &MldsaVerifyingKey, + enc: KeyEncoding, +) -> Result<()> { + let data = match key { + MldsaVerifyingKey::V44(k) => match enc { + KeyEncoding::Der | KeyEncoding::Pkcs8Der => k.to_public_key_der()?.as_bytes().to_vec(), + KeyEncoding::Pem | KeyEncoding::Pkcs8Pem => k + .to_public_key_pem(pkcs8::LineEnding::LF)? + .as_bytes() + .to_vec(), + _ => return Err(anyhow!("Unsupported format for MLDSA export")), + }, + MldsaVerifyingKey::V65(k) => match enc { + KeyEncoding::Der | KeyEncoding::Pkcs8Der => k.to_public_key_der()?.as_bytes().to_vec(), + KeyEncoding::Pem | KeyEncoding::Pkcs8Pem => k + .to_public_key_pem(pkcs8::LineEnding::LF)? + .as_bytes() + .to_vec(), + _ => return Err(anyhow!("Unsupported format for MLDSA export")), + }, + MldsaVerifyingKey::V87(k) => match enc { + KeyEncoding::Der | KeyEncoding::Pkcs8Der => k.to_public_key_der()?.as_bytes().to_vec(), + KeyEncoding::Pem | KeyEncoding::Pkcs8Pem => k + .to_public_key_pem(pkcs8::LineEnding::LF)? + .as_bytes() + .to_vec(), + _ => return Err(anyhow!("Unsupported format for MLDSA export")), + }, + }; + std::fs::write(path, data).context("Saving public key") +} + +#[cfg(test)] +mod tests { + use super::*; + use ml_dsa::{KeyGen, MlDsa44, MlDsa65, MlDsa87}; + use rand::thread_rng; + + #[test] + fn test_mldsa44_convert() -> Result<()> { + let mut rng = thread_rng(); + let kp = MlDsa44::key_gen(&mut rng); + let key = MldsaSigningKey::V44(Box::new(kp.signing_key().clone())); + + let hsm = AttributeMap::try_from(&key)?; + let key2 = MldsaSigningKey::try_from(&hsm)?; + + assert_eq!(key.encode(), key2.encode()); + assert_eq!(key.parameter_set(), 1); + + let vk = MldsaVerifyingKey::V44(Box::new(kp.verifying_key().clone())); + let hsm_pub = AttributeMap::try_from(&vk)?; + let vk2 = MldsaVerifyingKey::try_from(&hsm_pub)?; + + assert_eq!(vk.encode(), vk2.encode()); + assert_eq!(vk.parameter_set(), 1); + Ok(()) + } + + #[test] + fn test_mldsa65_convert() -> Result<()> { + let mut rng = thread_rng(); + let kp = MlDsa65::key_gen(&mut rng); + let key = MldsaSigningKey::V65(Box::new(kp.signing_key().clone())); + + let hsm = AttributeMap::try_from(&key)?; + let key2 = MldsaSigningKey::try_from(&hsm)?; + + assert_eq!(key.encode(), key2.encode()); + assert_eq!(key.parameter_set(), 2); + + let vk = MldsaVerifyingKey::V65(Box::new(kp.verifying_key().clone())); + let hsm_pub = AttributeMap::try_from(&vk)?; + let vk2 = MldsaVerifyingKey::try_from(&hsm_pub)?; + + assert_eq!(vk.encode(), vk2.encode()); + assert_eq!(vk.parameter_set(), 2); + Ok(()) + } + + #[test] + fn test_mldsa87_convert() -> Result<()> { + let mut rng = thread_rng(); + let kp = MlDsa87::key_gen(&mut rng); + let key = MldsaSigningKey::V87(Box::new(kp.signing_key().clone())); + + let hsm = AttributeMap::try_from(&key)?; + let key2 = MldsaSigningKey::try_from(&hsm)?; + + assert_eq!(key.encode(), key2.encode()); + assert_eq!(key.parameter_set(), 3); + + let vk = MldsaVerifyingKey::V87(Box::new(kp.verifying_key().clone())); + let hsm_pub = AttributeMap::try_from(&vk)?; + let vk2 = MldsaVerifyingKey::try_from(&hsm_pub)?; + + assert_eq!(vk.encode(), vk2.encode()); + assert_eq!(vk.parameter_set(), 3); + Ok(()) + } +} diff --git a/sw/host/hsmtool/src/util/key/mod.rs b/sw/host/hsmtool/src/util/key/mod.rs index 5e52cc3843f73..c7571412759ec 100644 --- a/sw/host/hsmtool/src/util/key/mod.rs +++ b/sw/host/hsmtool/src/util/key/mod.rs @@ -6,6 +6,7 @@ use clap; use serde::{Deserialize, Serialize}; pub mod ecdsa; +pub mod mldsa; pub mod rsa; #[derive(clap::ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] diff --git a/sw/host/hsmtool/src/util/signing.rs b/sw/host/hsmtool/src/util/signing.rs index 349ea86f526dd..70d9a8a1f08f3 100644 --- a/sw/host/hsmtool/src/util/signing.rs +++ b/sw/host/hsmtool/src/util/signing.rs @@ -4,6 +4,7 @@ use anyhow::Result; use cryptoki::mechanism::Mechanism; +use cryptoki::mechanism::vendor_defined::VendorDefinedMechanism; use rsa::pkcs1v15::Pkcs1v15Sign; use serde::{Deserialize, Serialize}; use sha2::Sha256; @@ -13,9 +14,19 @@ use sphincsplus::SpxDomain; use std::str::FromStr; use crate::error::HsmError; -use crate::util::attribute::KeyType; +use crate::util::attribute::{KeyType, MechanismType}; use crate::util::helper::parse_range; +/// Specify the ML-DSA domain. +#[derive(clap::ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[value(rename_all = "kebab-case")] +pub enum MlDsaDomain { + /// Pure ML-DSA (sign the message directly). + Pure, + /// Pre-hashed ML-DSA (sign a hash of the message). + PreHashed, +} + /// Specify the type of data being signed or verified. #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub enum SignData { @@ -69,9 +80,6 @@ impl SignData { // Data is plaintext: hash, then add PKCSv1.5 padding. SignData::PlainText => Self::pkcs15sign::(&Self::data_plain_text(input)?), // Data is already hashed: add PKCSv1.5 padding. - // If the `little_endian` flag is true, we assume the pre-hashed input came - // from opentitantool, which writes out the hash in little endian order, - // and therefore, needs to be reversed before the signing operation. SignData::Sha256Hash => Self::pkcs15sign::(&Self::data_raw(input, false)?), SignData::Sha256HashReversed => { Self::pkcs15sign::(&Self::data_raw(input, true)?) @@ -86,10 +94,6 @@ impl SignData { KeyType::Ec => match self { // Data is plaintext: hash. SignData::PlainText => Self::data_plain_text(input), - // Data is already hashed: no transformation needed. - // If the `little_endian` flag is true, we assume the pre-hashed input came - // from opentitantool, which writes out the hash in little endian order, - // and therefore, needs to be reversed before the signing operation. SignData::Sha256Hash => Self::data_raw(input, false), SignData::Sha256HashReversed => Self::data_raw(input, true), // Raw data requires no transformation. @@ -101,6 +105,25 @@ impl SignData { } } + pub fn mldsa_prepare(&self, domain: MlDsaDomain, input: &[u8]) -> Result> { + match self { + SignData::PlainText => match domain { + MlDsaDomain::Pure => Ok(input.into()), + MlDsaDomain::PreHashed => Ok(Sha256::digest(input).as_slice().to_vec()), + }, + SignData::Sha256Hash => Ok(input.into()), + SignData::Sha256HashReversed => Self::data_raw(input, true), + SignData::Raw => Ok(input.into()), + SignData::Slice(a, b) => { + let input = &input[*a..*b]; + match domain { + MlDsaDomain::Pure => Ok(input.into()), + MlDsaDomain::PreHashed => Ok(Sha256::digest(input).as_slice().to_vec()), + } + } + } + } + pub fn spx_prepare(&self, domain: SpxDomain, input: &[u8]) -> Result> { match self { SignData::PlainText => { @@ -155,6 +178,19 @@ impl SignData { SignData::Raw => Ok(Mechanism::Ecdsa), SignData::Slice(_, _) => Ok(Mechanism::Ecdsa), }, + KeyType::MlDsa => { + let mechanism = Mechanism::VendorDefined(VendorDefinedMechanism::new::<()>( + MechanismType::MlDsa.try_into()?, + None, + )); + match self { + SignData::PlainText => Ok(mechanism), + SignData::Sha256Hash => Ok(mechanism), + SignData::Sha256HashReversed => Ok(mechanism), + SignData::Raw => Ok(mechanism), + SignData::Slice(_, _) => Ok(mechanism), + } + } _ => Err(HsmError::Unsupported(format!("No mechanism for {keytype:?}")).into()), } } diff --git a/third_party/rust/Cargo.lock b/third_party/rust/Cargo.lock index aeebe12e3188e..ea8d180d3c5f4 100644 --- a/third_party/rust/Cargo.lock +++ b/third_party/rust/Cargo.lock @@ -200,11 +200,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -245,7 +245,7 @@ dependencies = [ "asn1", "base64 0.21.7", "base64ct", - "bitflags 2.9.1", + "bitflags 2.10.0", "byteorder", "chrono", "ciborium", @@ -280,6 +280,7 @@ dependencies = [ "libloading", "log", "memchr", + "ml-dsa", "num-bigint-dig", "num-traits", "object", @@ -292,6 +293,7 @@ dependencies = [ "pem-rfc7468", "pest", "pest_derive", + "pkcs8", "proc-macro2", "quote", "rand", @@ -310,6 +312,8 @@ dependencies = [ "sha2", "sha3", "shellwords", + "signature", + "spki", "strum", "syn", "tempfile", @@ -317,6 +321,7 @@ dependencies = [ "tiny-keccak", "tokio", "typetag", + "x509-cert", "zerocopy", "zeroize", ] @@ -552,23 +557,22 @@ dependencies = [ [[package]] name = "cryptoki" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781357a7779a8e92ea985121bbf379a9adf0777f44ab6392efc6abd5aa9b67db" +checksum = "ff765b99fc49f3116c9a908484486a2b92fd73c48da45c3a69716471c6cc56c6" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.10.0", "cryptoki-sys", "libloading", "log", - "paste", "secrecy", ] [[package]] name = "cryptoki-sys" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "753e27d860277930ae9f394c119c8c70303236aab0ffab1d51f3d207dbb2bc4b" +checksum = "f1fd850498411e4057f1cba79e6e2bc7cbe960544c1046ab46d4685c403a1121" dependencies = [ "libloading", ] @@ -615,10 +619,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", + "der_derive", + "flagset", "pem-rfc7468", "zeroize", ] +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "deranged" version = "0.4.0" @@ -836,6 +853,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "flagset" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" + [[package]] name = "flate2" version = "1.1.2" @@ -1140,6 +1163,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hybrid-array" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d15931895091dea5c47afa5b3c9a01ba634b311919fd4d41388fa0e3d76af" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.8.1" @@ -1427,7 +1459,7 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "libc", ] @@ -1541,12 +1573,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-link 0.2.1", ] [[package]] @@ -1561,7 +1593,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "libc", ] @@ -1621,9 +1653,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "mach2" @@ -1666,6 +1698,21 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "ml-dsa" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac4a46643af2001eafebcc37031fc459eb72d45057aac5d7a15b00046a2ad6db" +dependencies = [ + "const-oid", + "hybrid-array", + "num-traits", + "pkcs8", + "rand_core", + "sha3", + "signature", +] + [[package]] name = "native-tls" version = "0.2.14" @@ -1792,7 +1839,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -2095,7 +2142,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", ] [[package]] @@ -2266,7 +2313,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", @@ -2382,9 +2429,9 @@ dependencies = [ [[package]] name = "secrecy" -version = "0.8.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" dependencies = [ "zeroize", ] @@ -2395,7 +2442,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -2414,10 +2461,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -2430,11 +2478,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2503,7 +2560,7 @@ version = "4.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb0bc984f6af6ef8bab54e6cf2071579ee75b9286aa9f2319a0d220c28b0a2b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "cfg-if", "core-foundation 0.10.1", "core-foundation-sys", @@ -2517,6 +2574,17 @@ dependencies = [ "winapi", ] +[[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.9" @@ -2693,7 +2761,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -2811,6 +2879,27 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tls_codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de2e01245e2bb89d6f05801c564fa27624dbd7b1846859876c7dad82e90bf6b" +dependencies = [ + "tls_codec_derive", + "zeroize", +] + +[[package]] +name = "tls_codec_derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tokio" version = "1.47.1" @@ -2896,7 +2985,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", "bytes", "futures-util", "http", @@ -3474,7 +3563,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.10.0", ] [[package]] @@ -3483,6 +3572,20 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "sha1", + "signature", + "spki", + "tls_codec", +] + [[package]] name = "yoke" version = "0.8.1" @@ -3552,6 +3655,20 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "zerotrie" diff --git a/third_party/rust/Cargo.toml b/third_party/rust/Cargo.toml index d404ac7606437..74b9351c6b6c3 100644 --- a/third_party/rust/Cargo.toml +++ b/third_party/rust/Cargo.toml @@ -55,6 +55,7 @@ inventory = "0.3" itertools = "0.14.0" log = "0.4" memchr = "2" +ml-dsa = "0.0.4" num-bigint-dig = "0.8" num-traits = "0.2.14" object = "0.36.0" @@ -64,6 +65,7 @@ p256 = "0.13.2" p384 = "0.13.0" paste = "1.0" pem-rfc7468 = { version = "0.7.0", features = ["alloc", "std"] } +pkcs8 = { version = "0.10", features = ["std"] } proc-macro2 = "1.0.45" quote = "1.0" rand = "0.8.4" @@ -82,6 +84,8 @@ serialport = { version = "4.2.2", features = ["serde"] } sha2 = { version = "0.10", features = ["oid"] } sha3 = {version = "0.10", features = ["oid"] } shellwords = "1.1.0" +signature = "2.0" +spki = "0.7" strum = { version = "0.27", features = ["derive"] } syn = "2.0" tempfile = "3.3.0" @@ -89,12 +93,13 @@ thiserror = "2" tiny-keccak = {version = "2.0.2", features = ["cshake"]} tokio = { version = "1", features = ["full"] } typetag = "0.2" +x509-cert = { version = "0.2.5", features = ["builder"] } zerocopy = { version = "0.8", features = ["derive"] } zeroize = "1.8.1" # hsmtool dependencies -cryptoki = "0.10.0" -cryptoki-sys = "0.4.0" +cryptoki = "0.12.0" +cryptoki-sys = "0.5.0" indexmap = { version = "2.0", features = ["serde"] } libloading = "0.8"