From 3d93933afd78dc164381f17889424024563897a6 Mon Sep 17 00:00:00 2001 From: Ariel Mendelzon Date: Fri, 28 Jun 2024 03:26:09 +1200 Subject: [PATCH] Upgrading Python to version 3.12 (#184) - Updated docker images to use a Debian Bookworm based Python 3.12 base image - Updated hidapi repository reference to a version compatible with the later Cython - Updated Python libraries - Unified dependencies in requirements.txt (except for hidapi) - Added one-round keccak256 wrapper that uses pycryptodome, and corresponding unit tests - Replaced uses of pysha3 with new keccak256 wrapper - Removed pysha3 from Python libraries - Fixed existing unit tests - Replaced TCPSigner use of deprecated secp256k1_ec_privkey_tweak_add with the newer secp256k1_ec_seckey_tweak_add - Fixed new Python linting findings - Updated integration tests tag --- .github/workflows/run-tests.yml | 2 +- dist/Dockerfile | 2 +- docker/mware/Dockerfile | 22 +- docker/mware/requirements-pre.txt | 42 - docker/mware/requirements.txt | 1223 +++++++++++------ docker/packer/Dockerfile | 4 +- firmware/src/hal/src/x86/endorsement.c | 2 +- firmware/test/misc/blockdump.py | 4 +- firmware/test/misc/hex2c.py | 6 +- firmware/test/misc/mine.py | 5 +- firmware/test/misc/rsk_block.py | 12 +- middleware/admin/signer_authorization.py | 7 +- middleware/comm/english_mnemonic.py | 1 + middleware/comm/protocol.py | 6 +- middleware/comm/utils.py | 6 + middleware/ledger/block_utils.py | 6 +- middleware/ledger/protocol.py | 8 +- .../tests/admin/test_signer_authorization.py | 8 +- middleware/tests/comm/test_utils.py | 1198 +++++++++++++++- setup.cfg | 7 + utils/tcpsigner-bundle/dist/Dockerfile | 2 +- 21 files changed, 2065 insertions(+), 508 deletions(-) delete mode 100644 docker/mware/requirements-pre.txt diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 9171fd6f..3c2b28b1 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -57,7 +57,7 @@ jobs: uses: actions/checkout@v3 with: repository: rootstock/hsm-integration-test - ref: 5.0.0.plus + ref: 5.1.0.plus path: hsm-integration-test ssh-key: ${{ secrets.HSM_INTEGRATION_TEST_SSH_KEY }} diff --git a/dist/Dockerfile b/dist/Dockerfile index 49d6c56b..1a21c3f0 100644 --- a/dist/Dockerfile +++ b/dist/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bullseye-slim +FROM debian:bookworm-slim RUN apt-get update && \ apt-get install -y gnupg2 diff --git a/docker/mware/Dockerfile b/docker/mware/Dockerfile index ca9125c5..7504499d 100644 --- a/docker/mware/Dockerfile +++ b/docker/mware/Dockerfile @@ -1,30 +1,24 @@ -FROM python:3.7.16-slim-bullseye +FROM python:3.12-slim-bookworm WORKDIR /hsm2 RUN apt-get update && \ - apt-get install -y apt-utils vim && \ + apt-get install -y apt-utils vim procps && \ apt-get install -y build-essential=12.9 && \ apt-get install -y git && \ apt-get install -y lcov # Python package prerequisites RUN apt-get install -y \ - libsecp256k1-dev=0.1~20210108-1 \ - python3-pkgconfig=1.5.1-3 \ - libusb-1.0-0-dev=2:1.0.24-3 \ - libudev-dev=247.3-7+deb11u4 \ - libffi-dev=3.3-6 #\ - libjpeg-dev=1:2.0.6-4 - -COPY requirements-pre.txt /hsm2/requirements-pre.txt -RUN pip install -r requirements-pre.txt --require-hashes -RUN rm -f requirements-pre.txt + libsecp256k1-dev=0.2.0-2 \ + libudev-dev=252.22-1~deb12u1 \ + libusb-1.0-0-dev=2:1.0.26-1 \ + libffi-dev=3.4.4-1 \ + libjpeg-dev=1:2.1.5-2 COPY requirements.txt /hsm2/requirements.txt RUN pip install -r requirements.txt --require-hashes RUN rm -f requirements.txt # Hidapi wrapper with hid_exit support -RUN pip install git+https://github.com/rsksmart/cython-hidapi@0.10.1.post1 - +RUN pip install --use-pep517 git+https://github.com/rsksmart/cython-hidapi@0.10.1.post2 diff --git a/docker/mware/requirements-pre.txt b/docker/mware/requirements-pre.txt deleted file mode 100644 index a6d9260d..00000000 --- a/docker/mware/requirements-pre.txt +++ /dev/null @@ -1,42 +0,0 @@ -Cython==0.29.36 \ - --hash=sha256:0bca6a7504e8cfc63a4d3c7c9b9a04e5d05501942a6c8cee177363b61a32c2d4 \ - --hash=sha256:17c74f80b06e2fa8ffc8acd41925f4f9922da8a219cd25c6901beab2f7c56cc5 \ - --hash=sha256:19ccf7fc527cf556e2e6a3dfeffcadfbcabd24a59a988289117795dfed8a25ad \ - --hash=sha256:1ea33c1c57f331f5653baa1313e445fbe80d1da56dd9a42c8611037887897b9d \ - --hash=sha256:1ef90023da8a9bf84cf16f06186db0906d2ce52a09f751e2cb9d3da9d54eae46 \ - --hash=sha256:1ff2cc5518558c598028ae8d9a43401e0e734b74b6e598156b005328c9da3472 \ - --hash=sha256:25ff471a459aad82146973b0b8c177175ab896051080713d3035ad4418739f66 \ - --hash=sha256:28fb10aabd56a2e4d399273b48e106abe5a0d271728fd5eed3d36e7171000045 \ - --hash=sha256:2edd9f8edca69178d74cbbbc180bc3e848433c9b7dc80374a11a0bb0076c926d \ - --hash=sha256:2fe34615c13ace29e77bf9d21c26188d23eff7ad8b3e248da70404e5f5436b95 \ - --hash=sha256:41c0cfd2d754e383c9eeb95effc9aa4ab847d0c9747077ddd7c0dcb68c3bc01f \ - --hash=sha256:50d506d73a46c4a522ef9fdafcbf7a827ba13907b18ff58f61a8fa0887d0bd8d \ - --hash=sha256:53f93a8c342e9445a8f0cb7039775294f2dbbe5241936573daeaf0afe30397e4 \ - --hash=sha256:568625e8274ee7288ad87b0f615ec36ab446ca9b35e77481ed010027d99c7020 \ - --hash=sha256:6058a6d04e04d790cda530e1ff675e9352359eb4b777920df3cac2b62a9a030f \ - --hash=sha256:68abee3be27f21c9642a07a93f8333d491f4c52bc70068e42f51685df9ac1a57 \ - --hash=sha256:69af2365de2343b4e5a61c567e7611ddf2575ae6f6e5c01968f7d4f2747324eb \ - --hash=sha256:6a571d7c7b52ee12d73bc65b4855779c069545da3bac26bec06a1389ad17ade5 \ - --hash=sha256:6c4d7e36fe0211e394adffd296382b435ac22762d14f2fe45c506c230f91cf2d \ - --hash=sha256:74bddfc7dc8958526b2018d3adc1aa6dc9cf2a24095c972e5ad06758c360b261 \ - --hash=sha256:768f65b16d23c630d8829ce1f95520ef1531a9c0489fa872d87c8c3813f65aee \ - --hash=sha256:7ca921068242cd8b52544870c807fe285c1f248b12df7b6dfae25cc9957b965e \ - --hash=sha256:7cb44aeaf6c5c25bd6a7562ece4eadf50d606fc9b5f624fa95bd0281e8bf0a97 \ - --hash=sha256:847d07fc02978c4433d01b4f5ee489b75fd42fd32ccf9cc4b5fd887e8cffe822 \ - --hash=sha256:86b7a13c6b23ab6471d40a320f573fbc8a4e39833947eebed96661145dc34771 \ - --hash=sha256:8894db6f5b6479a3c164e0454e13083ebffeaa9a0822668bb2319bdf1b783df1 \ - --hash=sha256:95bb13d8be507425d03ebe051f90d4b2a9fdccc64e4f30b35645fdb7542742eb \ - --hash=sha256:9deef0761e8c798043dbb728a1c6df97b26e5edc65b8d6c7608b3c07af3eb722 \ - --hash=sha256:9f2a4b4587aaef08815410dc20653613ca04a120a2954a92c39e37c6b5fdf6be \ - --hash=sha256:a216b2801c7d9c3babe0a10cc25da3bc92494d7047d1f732d3c47b0cceaf0941 \ - --hash=sha256:a9738f23d00d99481797b155ad58f8fc1c72096926ea2554b8ccc46e1d356c27 \ - --hash=sha256:ae75eac4f13cbbcb50b2097470dcea570182446a3ebd0f7e95dd425c2017a2d7 \ - --hash=sha256:af2f333f08c4c279f3480532341bf70ec8010bcbc7d8a6daa5ca0bf4513af295 \ - --hash=sha256:bdc0a4cb99f55e6878d4b67a4bfee23823484915cb6b7e9c9dd01002dd3592ea \ - --hash=sha256:c6c0aea8491a70f98b7496b5057c9523740e02cec21cd678eef609d2aa6c1257 \ - --hash=sha256:cd77cedbcc13cb67aef39b8615fd50a67fc42b0c6defea6fc0a21e19d3a062ec \ - --hash=sha256:de2045ceae1857e56a72f08e0acfa48c994277a353b7bdab1f097db9f8803f19 \ - --hash=sha256:e4b8269e5a5d127a2191b02b9df3636c0dac73f14f1ff8a831f39cb5197c4f38 \ - --hash=sha256:ee317f9bcab901a3db39c34ee5a27716f7132e5c0de150125342694d18b30f51 \ - --hash=sha256:f0df6552be39853b10dfb5a10dbd08f5c49023d6b390d7ce92d4792a8b6e73ee \ - --hash=sha256:fdf377b0f6e9325b73ad88933136023184afdc795caeeaaf3dca13494cffd15e diff --git a/docker/mware/requirements.txt b/docker/mware/requirements.txt index abe60bd7..d53f7cfc 100644 --- a/docker/mware/requirements.txt +++ b/docker/mware/requirements.txt @@ -1,415 +1,812 @@ -certifi==2023.7.22 \ - --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ - --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 -altgraph==0.17.3 \ - --hash=sha256:ad33358114df7c9416cdb8fa1eaa5852166c505118717021c6a8c7c7abbd03dd \ - --hash=sha256:c8ac1ca6772207179ed8003ce7687757c04b0b71536f81e2ac5755c6226458fe -cffi==1.13.2 \ - --hash=sha256:0b49274afc941c626b605fb59b59c3485c17dc776dc3cc7cc14aca74cc19cc42 \ - --hash=sha256:0e3ea92942cb1168e38c05c1d56b0527ce31f1a370f6117f1d490b8dcd6b3a04 \ - --hash=sha256:135f69aecbf4517d5b3d6429207b2dff49c876be724ac0c8bf8e1ea99df3d7e5 \ - --hash=sha256:19db0cdd6e516f13329cba4903368bff9bb5a9331d3410b1b448daaadc495e54 \ - --hash=sha256:2781e9ad0e9d47173c0093321bb5435a9dfae0ed6a762aabafa13108f5f7b2ba \ - --hash=sha256:291f7c42e21d72144bb1c1b2e825ec60f46d0a7468f5346841860454c7aa8f57 \ - --hash=sha256:2c5e309ec482556397cb21ede0350c5e82f0eb2621de04b2633588d118da4396 \ - --hash=sha256:2e9c80a8c3344a92cb04661115898a9129c074f7ab82011ef4b612f645939f12 \ - --hash=sha256:32a262e2b90ffcfdd97c7a5e24a6012a43c61f1f5a57789ad80af1d26c6acd97 \ - --hash=sha256:3c9fff570f13480b201e9ab69453108f6d98244a7f495e91b6c654a47486ba43 \ - --hash=sha256:415bdc7ca8c1c634a6d7163d43fb0ea885a07e9618a64bda407e04b04333b7db \ - --hash=sha256:42194f54c11abc8583417a7cf4eaff544ce0de8187abaf5d29029c91b1725ad3 \ - --hash=sha256:4424e42199e86b21fc4db83bd76909a6fc2a2aefb352cb5414833c030f6ed71b \ - --hash=sha256:4a43c91840bda5f55249413037b7a9b79c90b1184ed504883b72c4df70778579 \ - --hash=sha256:599a1e8ff057ac530c9ad1778293c665cb81a791421f46922d80a86473c13346 \ - --hash=sha256:5c4fae4e9cdd18c82ba3a134be256e98dc0596af1e7285a3d2602c97dcfa5159 \ - --hash=sha256:5ecfa867dea6fabe2a58f03ac9186ea64da1386af2159196da51c4904e11d652 \ - --hash=sha256:62f2578358d3a92e4ab2d830cd1c2049c9c0d0e6d3c58322993cc341bdeac22e \ - --hash=sha256:6471a82d5abea994e38d2c2abc77164b4f7fbaaf80261cb98394d5793f11b12a \ - --hash=sha256:6d4f18483d040e18546108eb13b1dfa1000a089bcf8529e30346116ea6240506 \ - --hash=sha256:71a608532ab3bd26223c8d841dde43f3516aa5d2bf37b50ac410bb5e99053e8f \ - --hash=sha256:74a1d8c85fb6ff0b30fbfa8ad0ac23cd601a138f7509dc617ebc65ef305bb98d \ - --hash=sha256:7b93a885bb13073afb0aa73ad82059a4c41f4b7d8eb8368980448b52d4c7dc2c \ - --hash=sha256:7d4751da932caaec419d514eaa4215eaf14b612cff66398dd51129ac22680b20 \ - --hash=sha256:7f627141a26b551bdebbc4855c1157feeef18241b4b8366ed22a5c7d672ef858 \ - --hash=sha256:8169cf44dd8f9071b2b9248c35fc35e8677451c52f795daa2bb4643f32a540bc \ - --hash=sha256:aa00d66c0fab27373ae44ae26a66a9e43ff2a678bf63a9c7c1a9a4d61172827a \ - --hash=sha256:ccb032fda0873254380aa2bfad2582aedc2959186cce61e3a17abc1a55ff89c3 \ - --hash=sha256:d754f39e0d1603b5b24a7f8484b22d2904fa551fe865fd0d4c3332f078d20d4e \ - --hash=sha256:d75c461e20e29afc0aee7172a0950157c704ff0dd51613506bd7d82b718e7410 \ - --hash=sha256:dcd65317dd15bc0451f3e01c80da2216a31916bdcffd6221ca1202d96584aa25 \ - --hash=sha256:e570d3ab32e2c2861c4ebe6ffcad6a8abf9347432a37608fe1fbd157b3f0036b \ - --hash=sha256:fd43a88e045cf992ed09fa724b5315b790525f2676883a6ea64e3263bae6549d -chardet==3.0.4 \ - --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \ - --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 -click==7.0 \ - --hash=sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13 \ - --hash=sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7 -cytoolz==0.10.1 \ - --hash=sha256:82f5bba81d73a5a6b06f2a3553ff9003d865952fcb32e1df192378dd944d8a5c -ecdsa==0.15 \ - --hash=sha256:867ec9cf6df0b03addc8ef66b56359643cb5d0c1dc329df76ba7ecfe256c8061 \ - --hash=sha256:8f12ac317f8a1318efa75757ef0a651abe12e51fc1af8838fb91079445227277 -ECPy==1.0.1 \ - --hash=sha256:84360292152a6d1ea442d9371351a825bf4a3e17abd2011aa652df99ef589fac -eth-hash==0.2.0 \ - --hash=sha256:1b9cb34dd3cd99c85c2bd6a1420ceae39a2eee8bf080efd264bcda8be3edecc8 \ - --hash=sha256:499dc02d098f69856d1a6dd005529c16174157d4fb2a9fe20c41f69e39f8f176 -eth-typing==2.2.1 \ - --hash=sha256:2f3e1f891226148898b219bd94674a9af06c2d75d8cdd8c6722227b472cbd4d4 \ - --hash=sha256:cf9e5e9fb62cfeb1027823328569315166851c65c5774604d801b6b926ff65bc -eth-utils==1.8.4 \ - --hash=sha256:8358318685e7a7666b148b07df3c4d409435b424dce18501e79920aa52bcaba7 \ - --hash=sha256:f398c649859cda5ef7c4ee2753468038d93be7d864de7631c06c3e73a7060649 -future==0.18.3 \ - --hash=sha256:34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307 -hidapi==0.9.0.post2 \ - --hash=sha256:03b9118749f6102a96af175b2b77832c0d6f8957acb46ced5aa7afcf358052bc \ - --hash=sha256:3b31b396b6e95b635db4db8e9649cdb0aa2c205dd4cd8aaf3ee9807dddb1ebb8 \ - --hash=sha256:448c2ba9f713a5ee754830b222c9bc54a4e0dca4ecd0d84e3bf14314949ec594 \ - --hash=sha256:4c712309e2534a249721feb2abe7baedb9bfe7b3cc0e06cf4b78329684480932 \ - --hash=sha256:9c4369499a322d91d9f697c6b84b78f78c42695743641cb8bf3b5fa8c3c9b09c \ - --hash=sha256:a71dd3c153cb6bb2b73d2612b5ab262830d78c6428f33f0c06818749e64c9320 \ - --hash=sha256:d8dd636b7da9dfeb4aa08da64aceb91fb311465faae347b885cb8b695b141364 \ - --hash=sha256:da40dcf99ea15d440f3f3667f4166addd5676c485acf331c6e7c6c7879e11633 \ - --hash=sha256:dc633b34e318ce4638b73beb531136ab02ab005bfb383c260a41b5dfd5d85f16 -idna==2.9 \ - --hash=sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb \ - --hash=sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa -ledgerblue==0.1.31 \ - --hash=sha256:f1fc7ab685780309a7220c6ee517d88072cc594a9615bcc18e68ed5f149fa432 -macholib==1.16.2 \ - --hash=sha256:44c40f2cd7d6726af8fa6fe22549178d3a4dfecc35a9cd15ea916d9c83a688e0 \ - --hash=sha256:557bbfa1bb255c20e9abafe7ed6cd8046b48d9525db2f9b77d3122a63a2a8bf8 -mnemonic==0.19 \ - --hash=sha256:4e37eb02b2cbd56a0079cabe58a6da93e60e3e4d6e757a586d9f23d96abea931 \ - --hash=sha256:a8d78c5100acfa7df9bab6b9db7390831b0e54490934b718ff9efd68f0d731a6 -packaging==20.4 \ - --hash=sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8 \ - --hash=sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181 -parameterized==0.7.4 \ - --hash=sha256:190f8cc7230eee0b56b30d7f074fd4d165f7c45e6077582d0813c8557e738490 \ - --hash=sha256:59ab908e31c01505a987a2be78854e19cb1630c047bbab7848169c371d614d56 -Pillow==9.3.0 \ - --hash=sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040 \ - --hash=sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8 \ - --hash=sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65 \ - --hash=sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2 \ - --hash=sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627 \ - --hash=sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07 \ - --hash=sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef \ - --hash=sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535 \ - --hash=sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c \ - --hash=sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc \ - --hash=sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3 \ - --hash=sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1 \ - --hash=sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c \ - --hash=sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa \ - --hash=sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32 \ - --hash=sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502 \ - --hash=sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4 \ - --hash=sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f \ - --hash=sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812 \ - --hash=sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636 \ - --hash=sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20 \ - --hash=sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c \ - --hash=sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91 \ - --hash=sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe \ - --hash=sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b \ - --hash=sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad \ - --hash=sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9 \ - --hash=sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72 \ - --hash=sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4 \ - --hash=sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de \ - --hash=sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29 \ - --hash=sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee \ - --hash=sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c \ - --hash=sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7 \ - --hash=sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11 \ - --hash=sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c \ - --hash=sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c \ - --hash=sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448 \ - --hash=sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b \ - --hash=sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20 \ - --hash=sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228 \ - --hash=sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd \ - --hash=sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699 \ - --hash=sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b \ - --hash=sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2 \ - --hash=sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4 \ - --hash=sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c \ - --hash=sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f \ - --hash=sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2 \ - --hash=sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c \ - --hash=sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3 \ - --hash=sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193 \ - --hash=sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48 \ - --hash=sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02 \ - --hash=sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8 \ - --hash=sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e \ - --hash=sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f \ - --hash=sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b \ - --hash=sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74 \ - --hash=sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb \ - --hash=sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0 -pip-api==0.0.14 \ - --hash=sha256:0bbad536c70f0dfdc88e6811418ab0e8ac1aece7cf6c69223ae602a6ebc2943b \ - --hash=sha256:86e03968ac353869b52e57aa8d8572e096f24b797ac34c4fae3a380190bb02be -pkgconfig==1.5.1 \ - --hash=sha256:97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f \ - --hash=sha256:cddf2d7ecadb272178a942eb852a9dee46bda2adcc36c3416b0fef47a4ed9f38 -protobuf==3.18.3 \ - --hash=sha256:0c44e01f74109decea196b5b313b08edb5316df77313995594a6981e95674259 \ - --hash=sha256:15cdecb0d192ab5f17cdc21a9c0ae7b5c6c4451e42c8a888a4f3344c190e369c \ - --hash=sha256:196a153e487c0e20d62259872bbf2e1c4fa18e2ce97e20984fcbf9d8b151058d \ - --hash=sha256:3149c373e9b7ce296bb24d42a3eb677d620185b5dff2c390b2cf57baf79afdc1 \ - --hash=sha256:370a6b885e94adda021d4cbe43accdfbf6a02af651a0be337a28906a3fa77f3d \ - --hash=sha256:474247630834f93214fafce49d2ee6ff4c036c8c5382b88432b7eae6f08f131b \ - --hash=sha256:6380aae2683d0d1b41199e591c8ba06f867e8a778d44309af87073c1b34a9f3a \ - --hash=sha256:6741d7d1cfcbdd6cf610f38b7976cf8c0b41022203555298925e4061b6616608 \ - --hash=sha256:700787cb56b4cb7b8ed5f7d197b9d8f30080f257f3c7431eec1fdd8060660929 \ - --hash=sha256:8117b52c2531e4033f7d02b9be5a78564da41a8b02c255e1b731ad4bd75e7dc0 \ - --hash=sha256:850da2072d98c6e576b7eb29734cdde6fd9f5d157e43d7818d79f4b373ef5d51 \ - --hash=sha256:85d1fb5ff1d638a0045bbe4f01a8f287023aa4f2b29011445b1be0edc74a2103 \ - --hash=sha256:93bca9aaeee8008e15696c2a6b5e56b992da03f9d237ff54310e397d635f8305 \ - --hash=sha256:98d414513ec44bb3ba77ebdeffcbbe6ebbf3630c767d37a285890c2414fdd4e2 \ - --hash=sha256:a7f91a4e5bf3cc58b2830c9cb01b04ac5e211c288048e9296cd407ec0455fb89 \ - --hash=sha256:abbcb8ecd19cfb729b9b71f9a453e37c0c1c017be4bff47804ff25150685386d \ - --hash=sha256:b03966ca4d1aa7850f5bf0d841c22a8eeb6ce091f77e585ffeb8b95a6b0a96c4 \ - --hash=sha256:cde2a73b03049b904dbc5d0f500b97e11abb4109dbe2940e6a1595e2eef4e8a9 \ - --hash=sha256:d52a687e2c74c40f45abd6906f833d4e40f0f8cfa4226a80e4695fedafe6c57e \ - --hash=sha256:e68ad00695547d9397dd14abd3efba23cb31cef67228f4512d41396971889812 \ - --hash=sha256:e9bffd52d6ee039a1cafb72475b2900c6fd0f0dca667fb7a09af0a3e119e78cb -pycparser==2.19 \ - --hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3 -pycryptodome==3.19.1 \ - --hash=sha256:08b445799d571041765e7d5c9ca09c5d3866c2f22eeb0dd4394a4169285184f4 \ - --hash=sha256:11ddf6c9b52116b62223b6a9f4741bc4f62bb265392a4463282f7f34bb287180 \ - --hash=sha256:1c6273ca5a03b672e504995529b8bae56da0ebb691d8ef141c4aa68f60765700 \ - --hash=sha256:27e1efcb68993b7ce5d1d047a46a601d41281bba9f1971e6be4aa27c69ab8065 \ - --hash=sha256:2c16426ef49d9cba018be2340ea986837e1dfa25c2ea181787971654dd49aadd \ - --hash=sha256:37e531bf896b70fe302f003d3be5a0a8697737a8d177967da7e23eff60d6483c \ - --hash=sha256:420972f9c62978e852c74055d81c354079ce3c3a2213a92c9d7e37bbc63a26e2 \ - --hash=sha256:4464b0e8fd5508bff9baf18e6fd4c6548b1ac2ce9862d6965ff6a84ec9cb302a \ - --hash=sha256:4805e053571140cb37cf153b5c72cd324bb1e3e837cbe590a19f69b6cf85fd03 \ - --hash=sha256:67939a3adbe637281c611596e44500ff309d547e932c449337649921b17b6297 \ - --hash=sha256:694020d2ff985cd714381b9da949a21028c24b86f562526186f6af7c7547e986 \ - --hash=sha256:6c3df3613592ea6afaec900fd7189d23c8c28b75b550254f4bd33fe94acb84b9 \ - --hash=sha256:6d0d2b97758ebf2f36c39060520447c26455acb3bcff309c28b1c816173a6ff5 \ - --hash=sha256:7c9e222d0976f68d0cf6409cfea896676ddc1d98485d601e9508f90f60e2b0a2 \ - --hash=sha256:81e9d23c0316fc1b45d984a44881b220062336bbdc340aa9218e8d0656587934 \ - --hash=sha256:8ae0dd1bcfada451c35f9e29a3e5db385caabc190f98e4a80ad02a61098fb776 \ - --hash=sha256:8cf5d3d6cf921fa81acd1f632f6cedcc03f5f68fc50c364cd39490ba01d17c49 \ - --hash=sha256:954d156cd50130afd53f8d77f830fe6d5801bd23e97a69d358fed068f433fbfe \ - --hash=sha256:a470237ee71a1efd63f9becebc0ad84b88ec28e6784a2047684b693f458f41b7 \ - --hash=sha256:a991f8ffe8dfe708f86690948ae46442eebdd0fff07dc1b605987939a34ec979 \ - --hash=sha256:b0bfe61506795877ff974f994397f0c862d037f6f1c0bfc3572195fc00833b96 \ - --hash=sha256:b7efd46b0b4ac869046e814d83244aeab14ef787f4850644119b1c8b0ec2d637 \ - --hash=sha256:b8b80ff92049fd042177282917d994d344365ab7e8ec2bc03e853d93d2401786 \ - --hash=sha256:c1bc0c49d986a1491d66d2a56570f12e960b12508b7e71f2423f532e28857f36 \ - --hash=sha256:c22c80246c3c880c6950d2a8addf156cee74ec0dc5757d01e8e7067a3c7da015 \ - --hash=sha256:cd4e7e8bf0fc1ada854688b9b309ee607e2aa85a8b44180f91021a4dd330a928 \ - --hash=sha256:cd4e95b0eb4b28251c825fe7aa941fe077f993e5ca9b855665935b86fbb1cc08 \ - --hash=sha256:e038ab77fec0956d7aa989a3c647652937fc142ef41c9382c2ebd13c127d5b4a \ - --hash=sha256:e3e6f89480616781d2a7f981472d0cdb09b9da9e8196f43c1234eff45c915766 \ - --hash=sha256:e70f5c839c7798743a948efa2a65d1fe96bb397fe6d7f2bde93d869fe4f0ad69 \ - --hash=sha256:ed932eb6c2b1c4391e166e1a562c9d2f020bfff44a0e1b108f67af38b390ea89 \ - --hash=sha256:f34976c5c8eb79e14c7d970fb097482835be8d410a4220f86260695ede4c3e17 -pycryptodomex==3.19.1 \ - --hash=sha256:011e859026ecbd15b8e720e8992361186e582cf726c50bde6ff8c0c05e820ddf \ - --hash=sha256:0b42e2743893f386dfb58fe24a4c8be5305c3d1c825d5f23d9e63fd0700d1110 \ - --hash=sha256:0b7154aff2272962355f8941fd514104a88cb29db2d8f43a29af900d6398eb1c \ - --hash=sha256:0bc4b7bfaac56e6dfd62044847443a3d110c7abea7fcb0d68c1aea64ed3a6697 \ - --hash=sha256:10c2eed4efdfa084b602ab922e699a0a2ba82053baebfc8afcaf27489def7955 \ - --hash=sha256:1c04cfff163c05d033bf28e3c4429d8222796738c7b6c1638b9d7090b904611e \ - --hash=sha256:23707238b024b36c35dd3428f5af6c1f0c5ef54c21e387a2063633717699b8b2 \ - --hash=sha256:371bbe0be17b4dd8cc0c2f378d75ea33f00d5a39884c09a672016ac40145a5fa \ - --hash=sha256:39eb1f82ac3ba3e39d866f38e480e8fa53fcdd22260340f05f54a8188d47d510 \ - --hash=sha256:3f3c58971784fba0e014bc3f8aed1197b86719631e1b597d36d7354be5598312 \ - --hash=sha256:5ca98de2e5ac100e57a7116309723360e8f799f722509e376dc396cdf65eec9c \ - --hash=sha256:62f51a63d73153482729904381dd2de86800b0733a8814ee8f072fa73e5c92fb \ - --hash=sha256:76414d39df6b45bcc4f38cf1ba2031e0f4b8e99d1ba3c2eee31ffe1b9f039733 \ - --hash=sha256:8dffe067d5fff14dba4d18ff7d459cc2a47576d82dafbff13a8f1199c3353e41 \ - --hash=sha256:96000b837bcd8e3bf86b419924a056c978e45027281e4318650c81c25a3ef6cc \ - --hash=sha256:9919a1edd2a83c4dfb69f1d8a4c0c5efde7147ef15b07775633372b80c90b5d8 \ - --hash=sha256:aab7941c2ff53eb63cb26252770e4f14386d79ce07baeffbf98a1323c1646545 \ - --hash=sha256:ac562e239d98cfef763866c0aee4586affb0d58c592202f06c87241af99db241 \ - --hash=sha256:ae75eea2e908383fd4c659fdcfe9621a72869e3e3ee73904227e93b7f7b80b54 \ - --hash=sha256:b5c336dc698650283ad06f8c0237a984087d0af9f403ff21d633507335628156 \ - --hash=sha256:beb5f0664f49b6093da179ee8e27c1d670779f50b9ece0886ce491bb8bd63728 \ - --hash=sha256:c1ae2fb8d5d6771670436dcc889b293e363c97647a6d31c21eebc12b7b760010 \ - --hash=sha256:c9332b04bf3f838327087b028f690f4ddb9341eb014a0221e79b9c19a77f7555 \ - --hash=sha256:c9cb88ed323be1aa642b3c17cd5caa1a03c3a8fbad092d48ecefe88e328ffae3 \ - --hash=sha256:d45d0d35a238d838b872598fa865bbfb31aaef9aeeda77c68b04ef79f9a469dc \ - --hash=sha256:d7a77391fd351ff1bdf8475558ddc6e92950218cb905419ee14aa02f370f1054 \ - --hash=sha256:de5a43901e47e7a6938490fc5de3074f6e35c8b481a75b227c0d24d6099bd41d \ - --hash=sha256:e94a7e986b117b72e9472f8eafdd81748dafff30815401f9760f759f1debe9ef \ - --hash=sha256:ed3bdda44cc05dd13eee697ab9bea6928531bb7b218e68e66d0d3eb2ebab043e \ - --hash=sha256:f24f49fc6bd706d87048654d6be6c7c967d6836d4879e3a7c439275fab9948ad \ - --hash=sha256:f8a97b1acd36e9ce9d4067d94a8be99c458f0eb8070828639302a95cfcf0770b \ - --hash=sha256:f8b3d9e7c17c1ffc1fa5b11c0bbab8a5df3de8596bb32ad30281b21e5ede4bf5 -pyee==7.0.2 \ - --hash=sha256:a0fee808414a4fc077d81be80dfe785879430b03101088747714c045292751c0 \ - --hash=sha256:c908d1ecb32918bbf7dbb895a093153b0ca1ed8f04fc067d98bd4c5917aeb3d8 -pyinstaller==5.13.1 \ - --hash=sha256:086e68aa1e72f6aa13b9d170a395755e2b194b8ab410caeed02d16b432410c8c \ - --hash=sha256:2519db3edec87d8c33924c2c4b7e176d8c1bbd9ba892d77efb67281925e621d6 \ - --hash=sha256:29341d2e86d5ce7df993e797ee96ef679041fc85376d31c35c7b714085a21299 \ - --hash=sha256:3c9cfe6d5d2f392d5d47389f6d377a8f225db460cdd01048b5a3de1d99c24ebe \ - --hash=sha256:5d801db3ceee58d01337473ea897e96e4bb21421a169dd7cf8716754617ff7fc \ - --hash=sha256:78d1601a11475b95dceff6eaf0c9cd74d93e3f47b5ce4ad63cd76e7a369d3d04 \ - --hash=sha256:a2e7a1d76a7ac26f1db849d691a374f2048b0e204233028d25d79a90ecd1fec8 \ - --hash=sha256:aa609aca62edd8cdcf7740677a21525e6c23b5e9a8f821ec8a80c68947771b5d \ - --hash=sha256:ad6e31a8f35a463c6140e4cf979859197edc9831a1039253408b0fe5eec274dc \ - --hash=sha256:b70ebc10811b30bbea4cf5b81fd1477db992c2614cf215edc987cda9c5468911 \ - --hash=sha256:b8d4000af72bf72f8185d420cd0a0aee0961f03a5c3511dc3ff08cdaef0583de \ - --hash=sha256:e033218c8922f0342b6095fb444ecb3bc6747dfa58cac5eac2b985350f4b681e -pyinstaller-hooks-contrib==2022.10 \ - --hash=sha256:d1dd6ea059dc30e77813cc12a5efa8b1d228e7da8f5b884fe11775f946db1784 \ - --hash=sha256:e5edd4094175e78c178ef987b61be19efff6caa23d266ade456fc753e847f62e -pyparsing==2.4.7 \ - --hash=sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1 \ - --hash=sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b -pysha3==1.0.2 \ - --hash=sha256:0060a66be16665d90c432f55a0ba1f6480590cfb7d2ad389e688a399183474f0 \ - --hash=sha256:11a2ba7a2e1d9669d0052fc8fb30f5661caed5512586ecbeeaf6bf9478ab5c48 \ - --hash=sha256:386998ee83e313b6911327174e088021f9f2061cbfa1651b97629b761e9ef5c4 \ - --hash=sha256:41be70b06c8775a9e4d4eeb52f2f6a3f356f17539a54eac61f43a29e42fd453d \ - --hash=sha256:4416f16b0f1605c25f627966f76873e432971824778b369bd9ce1bb63d6566d9 \ - --hash=sha256:571a246308a7b63f15f5aa9651f99cf30f2a6acba18eddf28f1510935968b603 \ - --hash=sha256:59111c08b8f34495575d12e5f2ce3bafb98bea470bc81e70c8b6df99aef0dd2f \ - --hash=sha256:5ec8da7c5c70a53b5fa99094af3ba8d343955b212bc346a0d25f6ff75853999f \ - --hash=sha256:684cb01d87ed6ff466c135f1c83e7e4042d0fc668fa20619f581e6add1d38d77 \ - --hash=sha256:68c3a60a39f9179b263d29e221c1bd6e01353178b14323c39cc70593c30f21c5 \ - --hash=sha256:6e6a84efb7856f5d760ee55cd2b446972cb7b835676065f6c4f694913ea8f8d9 \ - --hash=sha256:827b308dc025efe9b6b7bae36c2e09ed0118a81f792d888548188e97b9bf9a3d \ - --hash=sha256:93abd775dac570cb9951c4e423bcb2bc6303a9d1dc0dc2b7afa2dd401d195b24 \ - --hash=sha256:9c778fa8b161dc9348dc5cc361e94d54aa5ff18413788f4641f6600d4893a608 \ - --hash=sha256:9fdd28884c5d0b4edfed269b12badfa07f1c89dbc5c9c66dd279833894a9896b \ - --hash=sha256:c7c2adcc43836223680ebdf91f1d3373543dc32747c182c8ca2e02d1b69ce030 \ - --hash=sha256:c93a2676e6588abcfaecb73eb14485c81c63b94fca2000a811a7b4fb5937b8e8 \ - --hash=sha256:cd5c961b603bd2e6c2b5ef9976f3238a561c58569945d4165efb9b9383b050ef \ - --hash=sha256:f9046d59b3e72aa84f6dae83a040bd1184ebd7fef4e822d38186a8158c89e3cf \ - --hash=sha256:fd7e66999060d079e9c0e8893e78d8017dad4f59721f6fe0be6307cd32127a07 \ - --hash=sha256:fe988e73f2ce6d947220624f04d467faf05f1bbdbc64b0a201296bb3af92739e -python-bitcoinlib==0.10.2 \ - --hash=sha256:2fe94e8a947285b59de3fd6e16c9fd5312afb5dbaff6511eb361e3a858e7af57 \ - --hash=sha256:5df2777f4b47dc4f3e63ee02fd92ac3cc06d79a9fd6a2284c8d345cd8e750d25 \ - --hash=sha256:bdb270ded594b8dead58fd6830ad14f880c25ec1fd2ca1be24e9e85decefce04 +altgraph==0.17.4 \ + --hash=sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406 \ + --hash=sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff +bleak==0.22.2 \ + --hash=sha256:09010c0f4bd843e7dcaa1652e1bfb2450ce690da08d4c6163f0723aaa986e9fe \ + --hash=sha256:8395c9e096f28e0ba1f3e6a8619fa21c327c484f720b7af3ea578d04f498a458 +certifi==2024.6.2 \ + --hash=sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516 \ + --hash=sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56 +cffi==1.16.0 \ + --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ + --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ + --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ + --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ + --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ + --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ + --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ + --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ + --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ + --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ + --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ + --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ + --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ + --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ + --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ + --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ + --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ + --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ + --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ + --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ + --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ + --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ + --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ + --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ + --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ + --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ + --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ + --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ + --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ + --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ + --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ + --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ + --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ + --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ + --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ + --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ + --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ + --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ + --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ + --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ + --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ + --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ + --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ + --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ + --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ + --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ + --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ + --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ + --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ + --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ + --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ + --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 +chardet==5.2.0 \ + --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ + --hash=sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970 +charset-normalizer==3.3.2 \ + --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ + --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ + --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ + --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ + --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ + --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ + --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ + --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ + --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ + --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ + --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ + --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ + --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ + --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ + --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ + --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ + --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ + --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ + --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ + --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ + --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ + --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ + --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ + --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ + --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ + --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ + --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ + --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ + --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ + --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ + --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ + --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ + --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ + --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ + --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ + --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ + --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ + --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ + --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ + --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ + --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ + --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ + --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ + --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ + --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ + --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ + --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ + --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ + --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ + --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ + --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ + --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ + --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ + --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ + --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ + --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ + --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ + --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ + --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ + --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ + --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ + --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ + --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ + --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ + --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ + --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ + --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ + --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ + --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ + --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ + --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ + --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ + --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ + --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ + --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ + --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ + --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ + --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ + --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ + --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ + --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ + --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ + --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ + --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ + --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ + --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ + --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ + --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ + --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ + --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 +click==8.1.7 \ + --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ + --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de +coverage==7.5.3 \ + --hash=sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523 \ + --hash=sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f \ + --hash=sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d \ + --hash=sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb \ + --hash=sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0 \ + --hash=sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c \ + --hash=sha256:244f509f126dc71369393ce5fea17c0592c40ee44e607b6d855e9c4ac57aac98 \ + --hash=sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83 \ + --hash=sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8 \ + --hash=sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7 \ + --hash=sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac \ + --hash=sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84 \ + --hash=sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb \ + --hash=sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3 \ + --hash=sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884 \ + --hash=sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614 \ + --hash=sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd \ + --hash=sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807 \ + --hash=sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd \ + --hash=sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8 \ + --hash=sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc \ + --hash=sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db \ + --hash=sha256:75e3f4e86804023e991096b29e147e635f5e2568f77883a1e6eed74512659ab0 \ + --hash=sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08 \ + --hash=sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232 \ + --hash=sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d \ + --hash=sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a \ + --hash=sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1 \ + --hash=sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286 \ + --hash=sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303 \ + --hash=sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341 \ + --hash=sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84 \ + --hash=sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45 \ + --hash=sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc \ + --hash=sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec \ + --hash=sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd \ + --hash=sha256:b368e1aee1b9b75757942d44d7598dcd22a9dbb126affcbba82d15917f0cc155 \ + --hash=sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52 \ + --hash=sha256:c4c2872b3c91f9baa836147ca33650dc5c172e9273c808c3c3199c75490e709d \ + --hash=sha256:c59d2ad092dc0551d9f79d9d44d005c945ba95832a6798f98f9216ede3d5f485 \ + --hash=sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31 \ + --hash=sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d \ + --hash=sha256:dd4b3355b01273a56b20c219e74e7549e14370b31a4ffe42706a8cda91f19f6d \ + --hash=sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d \ + --hash=sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85 \ + --hash=sha256:f542287b1489c7a860d43a7d8883e27ca62ab84ca53c965d11dac1d3a1fab7ce \ + --hash=sha256:f78300789a708ac1f17e134593f577407d52d0417305435b134805c4fb135adb \ + --hash=sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974 \ + --hash=sha256:f836c174c3a7f639bded48ec913f348c4761cbf49de4a20a956d3431a7c9cb24 \ + --hash=sha256:fa21a04112c59ad54f69d80e376f7f9d0f5f9123ab87ecd18fbb9ec3a2beed56 \ + --hash=sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9 \ + --hash=sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35 +Cython==3.0.10 \ + --hash=sha256:051069638abfb076900b0c2bcb6facf545655b3f429e80dd14365192074af5a4 \ + --hash=sha256:076e9fd4e0ca33c5fa00a7479180dbfb62f17fe928e2909f82da814536e96d2b \ + --hash=sha256:077b61ee789e48700e25d4a16daa4258b8e65167136e457174df400cf9b4feab \ + --hash=sha256:09f2000041db482cad3bfce94e1fa3a4c82b0e57390a164c02566cbbda8c4f12 \ + --hash=sha256:0bac3ccdd4e03924028220c62ae3529e17efa8ca7e9df9330de95de02f582b26 \ + --hash=sha256:0e9a885ec63d3955a08cefc4eec39fefa9fe14989c6e5e2382bd4aeb6bdb9bc3 \ + --hash=sha256:15b6d397f4ee5ad54e373589522af37935a32863f1b23fa8c6922adf833e28e2 \ + --hash=sha256:206e803598010ecc3813db8748ed685f7beeca6c413f982df9f8a505fce56563 \ + --hash=sha256:269f06e6961e8591d56e30b46e1a51b6ccb42cab04c29fa3b30d3e8723485fb4 \ + --hash=sha256:2c9c1e3e78909488f3b16fabae02308423fa6369ed96ab1e250807d344cfffd7 \ + --hash=sha256:2d29e617fd23cf4b83afe8f93f2966566c9f565918ad1e86a4502fe825cc0a79 \ + --hash=sha256:32fbad02d1189be75eb96456d9c73f5548078e5338d8fa153ecb0115b6ee279f \ + --hash=sha256:35f6ede7c74024ed1982832ae61c9fad7cf60cc3f5b8c6a63bb34e38bc291936 \ + --hash=sha256:38d40fa1324ac47c04483d151f5e092406a147eac88a18aec789cf01c089c3f2 \ + --hash=sha256:3919a55ec9b6c7db6f68a004c21c05ed540c40dbe459ced5d801d5a1f326a053 \ + --hash=sha256:3cffb666e649dba23810732497442fb339ee67ba4e0be1f0579991e83fcc2436 \ + --hash=sha256:401aba1869a57aba2922ccb656a6320447e55ace42709b504c2f8e8b166f46e1 \ + --hash=sha256:407840c56385b9c085826fe300213e0e76ba15d1d47daf4b58569078ecb94446 \ + --hash=sha256:40fac59c3a7fbcd9c25aea64c342c890a5e2270ce64a1525e840807800167799 \ + --hash=sha256:4f610964ab252a83e573a427e28b103e2f1dd3c23bee54f32319f9e73c3c5499 \ + --hash=sha256:4fadb84193c25641973666e583df8df4e27c52cdc05ddce7c6f6510d690ba34a \ + --hash=sha256:541fbe725d6534a90b93f8c577eb70924d664b227a4631b90a6e0506d1469591 \ + --hash=sha256:5a036d00caa73550a3a976432ef21c1e3fa12637e1616aab32caded35331ae96 \ + --hash=sha256:5bd49a3a9fdff65446a3e1c2bfc0ec85c6ce4c3cad27cd4ad7ba150a62b7fb59 \ + --hash=sha256:5f465443917d5c0f69825fca3b52b64c74ac3de0143b1fff6db8ba5b48c9fb4a \ + --hash=sha256:64f1f8bba9d8f37c0cffc934792b4ac7c42d0891077127c11deebe9fa0a0f7e4 \ + --hash=sha256:651a15a8534ebfb9b58cb0b87c269c70984b6f9c88bfe65e4f635f0e3f07dfcd \ + --hash=sha256:6c5af936940a38c300977b81598d9c0901158f220a58c177820e17e1774f1cf1 \ + --hash=sha256:712760879600907189c7d0d346851525545484e13cd8b787e94bfd293da8ccf0 \ + --hash=sha256:81f356c1c8c0885b8435bfc468025f545c5d764aa9c75ab662616dd1193c331e \ + --hash=sha256:86998b01f6a6d48398df8467292c7637e57f7e3a2ca68655367f13f66fed7734 \ + --hash=sha256:8adcde00a8a88fab27509b558cd8c2959ab0c70c65d3814cfea8c68b83fa6dcd \ + --hash=sha256:8c9c4c4f3ab8f8c02817b0e16e8fa7b8cc880f76e9b63fe9c010e60c1a6c2b13 \ + --hash=sha256:8f2864ab5fcd27a346f0b50f901ebeb8f60b25a60a575ccfd982e7f3e9674914 \ + --hash=sha256:90e2f514fc753b55245351305a399463103ec18666150bb1c36779b9862388e9 \ + --hash=sha256:950c0c7b770d2a7cec74fb6f5ccc321d0b51d151f48c075c0d0db635a60ba1b5 \ + --hash=sha256:9cc6a0e7e23a96dec3f3c9d39690d4281beabd5297855140d0d30855f950275e \ + --hash=sha256:9ea31184c7b3a728ef1f81fccb161d8948c05aa86c79f63b74fb6f3ddec860ec \ + --hash=sha256:9fa9e7786083b6aa61594c16979d621b62e61fcd9c2edd4761641b95c7fb34b2 \ + --hash=sha256:a181144c2f893ed8e6a994d43d0b96300bc99873f21e3b7334ca26c61c37b680 \ + --hash=sha256:a5e14a8c6a8157d2b0cdc2e8e3444905d20a0e78e19d2a097e89fb8b04b51f6b \ + --hash=sha256:a9bb402674788a7f4061aeef8057632ec440123e74ed0fb425308a59afdfa10e \ + --hash=sha256:a9c976e9ec429539a4367cb4b24d15a1e46b925976f4341143f49f5f161171f5 \ + --hash=sha256:acfbe0fff364d54906058fc61f2393f38cd7fa07d344d80923937b87e339adcf \ + --hash=sha256:adc377aa33c3309191e617bf675fdbb51ca727acb9dc1aa23fc698d8121f7e23 \ + --hash=sha256:b74b700d6a793113d03fb54b63bdbadba6365379424bac7c0470605672769260 \ + --hash=sha256:bcc9795990e525c192bc5c0775e441d7d56d7a7d02210451e9e13c0448dba51b \ + --hash=sha256:d092c0ddba7e9e530a5c5be4ac06db8360258acc27675d1fc86294a5dc8994c5 \ + --hash=sha256:d10fc9aa82e5e53a0b7fd118f9771199cddac8feb4a6d8350b7d4109085aa775 \ + --hash=sha256:d4e83a8ceff7af60064da4ccfce0ac82372544dd5392f1b350c34f1b04d0fae6 \ + --hash=sha256:dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99 \ + --hash=sha256:e876272548d73583e90babda94c1299537006cad7a34e515a06c51b41f8657aa \ + --hash=sha256:e8df79b596633b8295eaa48b1157d796775c2bb078f32267d32f3001b687f2fd \ + --hash=sha256:f43a58bf2434870d2fc42ac2e9ff8138c9e00c6251468de279d93fa279e9ba3b \ + --hash=sha256:f4780d0f98ce28191c4d841c4358b5d5e79d96520650910cd59904123821c52d \ + --hash=sha256:f8a2b8fa0fd8358bccb5f3304be563c4750aae175100463d212d5ea0ec74cbe0 \ + --hash=sha256:fc6e0faf5b57523b073f0cdefadcaef3a51235d519a0594865925cadb3aeadf0 \ + --hash=sha256:fcbb679c0b43514d591577fd0d20021c55c240ca9ccafbdb82d3fb95e5edfee2 +cytoolz==0.12.3 \ + --hash=sha256:01cfb8518828c1189200c02a5010ea404407fb18fd5589e29c126e84bbeadd36 \ + --hash=sha256:04afa90d9d9d18394c40d9bed48c51433d08b57c042e0e50c8c0f9799735dcbd \ + --hash=sha256:08a438701c6141dd34eaf92e9e9a1f66e23a22f7840ef8a371eba274477de85d \ + --hash=sha256:0a79d72b08048a0980a59457c239555f111ac0c8bdc140c91a025f124104dbb4 \ + --hash=sha256:0ba1cbc4d9cd7571c917f88f4a069568e5121646eb5d82b2393b2cf84712cf2a \ + --hash=sha256:0cf1e1e96dd86829a0539baf514a9c8473a58fbb415f92401a68e8e52a34ecd5 \ + --hash=sha256:0d8edfbc694af6c9bda4db56643fb8ed3d14e47bec358c2f1417de9a12d6d1fb \ + --hash=sha256:0e9199c9e3fbf380a92b8042c677eb9e7ed4bccb126de5e9c0d26f5888d96788 \ + --hash=sha256:0fbad1fb9bb47e827d00e01992a099b0ba79facf5e5aa453be066033232ac4b5 \ + --hash=sha256:131ff4820e5d64a25d7ad3c3556f2d8aa65c66b3f021b03f8a8e98e4180dd808 \ + --hash=sha256:1651a9bd591a8326329ce1d6336f3129161a36d7061a4d5ea9e5377e033364cf \ + --hash=sha256:18cd61e078bd6bffe088e40f1ed02001387c29174750abce79499d26fa57f5eb \ + --hash=sha256:1c18e351956f70db9e2d04ff02f28e9a41839250d3f936a4c8a1eabd1c3094d2 \ + --hash=sha256:1dd70141b32b717696a72b8876e86bc9c6f8eff995c1808e299db3541213ff82 \ + --hash=sha256:1f501ae1353071fa5d6677437bbeb1aeb5622067dce0977cedc2c5ec5843b202 \ + --hash=sha256:20d36430d8ac809186736fda735ee7d595b6242bdb35f69b598ef809ebfa5605 \ + --hash=sha256:27513a5d5b6624372d63313574381d3217a66e7a2626b056c695179623a5cb1a \ + --hash=sha256:2905fdccacc64b4beba37f95cab9d792289c80f4d70830b70de2fc66c007ec01 \ + --hash=sha256:2c6dd75dae3d84fa8988861ab8b1189d2488cb8a9b8653828f9cd6126b5e7abd \ + --hash=sha256:33c63186f3bf9d7ef1347bc0537bb9a0b4111a0d7d6e619623cabc18fef0dc3b \ + --hash=sha256:37441bf4a2a4e2e0fe9c3b0ea5e72db352f5cca03903977ffc42f6f6c5467be9 \ + --hash=sha256:3ac4f2fb38bbc67ff1875b7d2f0f162a247f43bd28eb7c9d15e6175a982e558d \ + --hash=sha256:4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282 \ + --hash=sha256:456395d7aec01db32bf9e6db191d667347c78d8d48e77234521fa1078f60dabb \ + --hash=sha256:46f505d4c6eb79585c8ad0b9dc140ef30a138c880e4e3b40230d642690e36366 \ + --hash=sha256:47feb089506fc66e1593cd9ade3945693a9d089a445fbe9a11385cab200b9f22 \ + --hash=sha256:4fba0616fcd487e34b8beec1ad9911d192c62e758baa12fcb44448b9b6feae22 \ + --hash=sha256:534fa66db8564d9b13872d81d54b6b09ae592c585eb826aac235bd6f1830f8ad \ + --hash=sha256:55f9bd1ae6c2a27eda5abe2a0b65a83029d2385c5a1da7b8ef47af5905d7e905 \ + --hash=sha256:56f899758146a52e2f8cfb3fb6f4ca19c1e5814178c3d584de35f9e4d7166d91 \ + --hash=sha256:581f1ce479769fe7eeb9ae6d87eadb230df8c7c5fff32138162cdd99d7fb8fc3 \ + --hash=sha256:582c22f97a380211fb36a7b65b1beeb84ea11d82015fa84b054be78580390082 \ + --hash=sha256:59276021619b432a5c21c01cda8320b9cc7dbc40351ffc478b440bfccd5bbdd3 \ + --hash=sha256:59b19223e7f7bd7a73ec3aa6fdfb73b579ff09c2bc0b7d26857eec2d01a58c76 \ + --hash=sha256:6986632d8a969ea1e720990c818dace1a24c11015fd7c59b9fea0b65ef71f726 \ + --hash=sha256:6c2875bcd1397d0627a09a4f9172fa513185ad302c63758efc15b8eb33cc2a98 \ + --hash=sha256:6d3bfe45173cc8e6c76206be3a916d8bfd2214fb2965563e288088012f1dabfc \ + --hash=sha256:6f6e8207d732651e0204779e1ba5a4925c93081834570411f959b80681f8d333 \ + --hash=sha256:71b6eb97f6695f7ba8ce69c49b707a351c5f46fd97f5aeb5f6f2fb0d6e72b887 \ + --hash=sha256:727b01a2004ddb513496507a695e19b5c0cfebcdfcc68349d3efd92a1c297bf4 \ + --hash=sha256:765b8381d4003ceb1a07896a854eee2c31ebc950a4ae17d1e7a17c2a8feb2a68 \ + --hash=sha256:780c06110f383344d537f48d9010d79fa4f75070d214fc47f389357dd4f010b6 \ + --hash=sha256:7ad1331cb68afeec58469c31d944a2100cee14eac221553f0d5218ace1a0b25d \ + --hash=sha256:7d267ffc9a36c0a9a58c7e0adc9fa82620f22e4a72533e15dd1361f57fc9accf \ + --hash=sha256:800f0526adf9e53d3c6acda748f4def1f048adaa780752f154da5cf22aa488a2 \ + --hash=sha256:8119bf5961091cfe644784d0bae214e273b3b3a479f93ee3baab97bbd995ccfe \ + --hash=sha256:8587c3c3dbe78af90c5025288766ac10dc2240c1e76eb0a93a4e244c265ccefd \ + --hash=sha256:86923d823bd19ce35805953b018d436f6b862edd6a7c8b747a13d52b39ed5716 \ + --hash=sha256:8893223b87c2782bd59f9c4bd5c7bf733edd8728b523c93efb91d7468b486528 \ + --hash=sha256:8e21932d6d260996f7109f2a40b2586070cb0a0cf1d65781e156326d5ebcc329 \ + --hash=sha256:921e6d2440ac758c4945c587b1d1d9b781b72737ac0c0ca5d5e02ca1db8bded2 \ + --hash=sha256:92b6f43f086e5a965d33d62a145ae121b4ccb6e0789ac0acc895ce084fec8c65 \ + --hash=sha256:92c53d508fb8a4463acc85b322fa24734efdc66933a5c8661bdc862103a3373d \ + --hash=sha256:95e878868a172a41fbf6c505a4b967309e6870e22adc7b1c3b19653d062711fa \ + --hash=sha256:96a5a0292575c3697121f97cc605baf2fd125120c7dcdf39edd1a135798482ca \ + --hash=sha256:96c715404a3825e37fe3966fe84c5f8a1f036e7640b2a02dbed96cac0c933451 \ + --hash=sha256:99462abd8323c52204a2a0ce62454ce8fa0f4e94b9af397945c12830de73f27e \ + --hash=sha256:9bac0adffc1b6b6a4c5f1fd1dd2161afb720bcc771a91016dc6bdba59af0a5d3 \ + --hash=sha256:9e04d22049233394e0b08193aca9737200b4a2afa28659d957327aa780ddddf2 \ + --hash=sha256:9e45803d9e75ef90a2f859ef8f7f77614730f4a8ce1b9244375734567299d239 \ + --hash=sha256:9eef0d23035fa4dcfa21e570961e86c375153a7ee605cdd11a8b088c24f707f6 \ + --hash=sha256:a1445c91009eb775d479e88954c51d0b4cf9a1e8ce3c503c2672d17252882647 \ + --hash=sha256:a3e61acfd029bfb81c2c596249b508dfd2b4f72e31b7b53b62e5fb0507dd7293 \ + --hash=sha256:a447247ed312dd64e3a8d9483841ecc5338ee26d6e6fbd29cd373ed030db0240 \ + --hash=sha256:a7fde09384d23048a7b4ac889063761e44b89a0b64015393e2d1d21d5c1f534a \ + --hash=sha256:a83f4532707963ae1a5108e51fdfe1278cc8724e3301fee48b9e73e1316de64f \ + --hash=sha256:b4a52dd2a36b0a91f7aa50ca6c8509057acc481a24255f6cb07b15d339a34e0f \ + --hash=sha256:b76f2f50a789c44d6fd7f773ec43d2a8686781cd52236da03f7f7d7998989bee \ + --hash=sha256:ba3f843aa89f35467b38c398ae5b980a824fdbdb94065adc6ec7c47a0a22f4c7 \ + --hash=sha256:ba9002d2f043943744a9dc8e50a47362bcb6e6f360dc0a1abcb19642584d87bb \ + --hash=sha256:bbe58e26c84b163beba0fbeacf6b065feabc8f75c6d3fe305550d33f24a2d346 \ + --hash=sha256:be6feb903d2a08a4ba2e70e950e862fd3be9be9a588b7c38cee4728150a52918 \ + --hash=sha256:bfa3f8e01bc423a933f2e1c510cbb0632c6787865b5242857cc955cae220d1bf \ + --hash=sha256:c51b66ada9bfdb88cf711bf350fcc46f82b83a4683cf2413e633c31a64df6201 \ + --hash=sha256:c64f8e60c1dd69e4d5e615481f2d57937746f4a6be2d0f86e9e7e3b9e2243b5e \ + --hash=sha256:c6b6f11b0d7ed91be53166aeef2a23a799e636625675bb30818f47f41ad31821 \ + --hash=sha256:c835eab01466cb67d0ce6290601ebef2d82d8d0d0a285ed0d6e46989e4a7a71a \ + --hash=sha256:ca6a9a9300d5bda417d9090107c6d2b007683efc59d63cc09aca0e7930a08a85 \ + --hash=sha256:caf07a97b5220e6334dd32c8b6d8b2bd255ca694eca5dfe914bb5b880ee66cdb \ + --hash=sha256:cd88028bb897fba99ddd84f253ca6bef73ecb7bdf3f3cf25bc493f8f97d3c7c5 \ + --hash=sha256:cee3de65584e915053412cd178729ff510ad5f8f585c21c5890e91028283518f \ + --hash=sha256:d028044524ee2e815f36210a793c414551b689d4f4eda28f8bbb0883ad78bf5f \ + --hash=sha256:d0976a3fcb81d065473173e9005848218ce03ddb2ec7d40dd6a8d2dba7f1c3ae \ + --hash=sha256:d294e5e81ff094fe920fd545052ff30838ea49f9e91227a55ecd9f3ca19774a0 \ + --hash=sha256:d2d271393c378282727f1231d40391ae93b93ddc0997448acc21dd0cb6a1e56d \ + --hash=sha256:d9a38332cfad2a91e89405b7c18b3f00e2edc951c225accbc217597d3e4e9fde \ + --hash=sha256:da125221b1fa25c690fcd030a54344cecec80074df018d906fc6a99f46c1e3a6 \ + --hash=sha256:dc1ca9c610425f9854323669a671fc163300b873731584e258975adf50931164 \ + --hash=sha256:dd728f4e6051af6af234651df49319da1d813f47894d4c3c8ab7455e01703a37 \ + --hash=sha256:de74ef266e2679c3bf8b5fc20cee4fc0271ba13ae0d9097b1491c7a9bcadb389 \ + --hash=sha256:e44f4c25e1e7cf6149b499c74945a14649c8866d36371a2c2d2164e4649e7755 \ + --hash=sha256:e4d2961644153c5ae186db964aa9f6109da81b12df0f1d3494b4e5cf2c332ee2 \ + --hash=sha256:e70d9c615e5c9dc10d279d1e32e846085fe1fd6f08d623ddd059a92861f4e3dd \ + --hash=sha256:ec9be3e4b6f86ea8b294d34c990c99d2ba6c526ef1e8f46f1d52c263d4f32cd7 \ + --hash=sha256:ed0cfb9326747759e2ad81cb6e45f20086a273b67ac3a4c00b19efcbab007c60 \ + --hash=sha256:ee98968d6a66ee83a8ceabf31182189ab5d8598998c8ce69b6d5843daeb2db60 \ + --hash=sha256:f04037302049cb30033f7fa4e1d0e44afe35ed6bfcf9b380fc11f2a27d3ed697 \ + --hash=sha256:f1ebe23028eac51251f22ba01dba6587d30aa9c320372ca0c14eeab67118ec3f \ + --hash=sha256:f37b60e66378e7a116931d7220f5352186abfcc950d64856038aa2c01944929c \ + --hash=sha256:f702e295dddef5f8af4a456db93f114539b8dc2a7a9bc4de7c7e41d169aa6ec3 \ + --hash=sha256:fdddb9d988405f24035234f1e8d1653ab2e48cc2404226d21b49a129aefd1d25 \ + --hash=sha256:fe1e1779a39dbe83f13886d2b4b02f8c4b10755e3c8d9a89b630395f49f4f406 \ + --hash=sha256:fe8c6267caa7ec67bcc37e360f0d8a26bc3bdce510b15b97f2f2e0143bdd3673 \ + --hash=sha256:fea649f979def23150680de1bd1d09682da3b54932800a0f90f29fc2a6c98ba8 +dbus-fast==2.21.3 \ + --hash=sha256:0665d8cb179f0b8fff23e63592c1f454fdaa4ae44a4263a7a7b7df8d834b3f71 \ + --hash=sha256:07213240465c3c7306705ad512c983ada45ef222d2eecf3d7ab19f397b02de0d \ + --hash=sha256:0c342d8b33079c550ea575344d53807f6ae6464b1a5f6f9e0523fae979198872 \ + --hash=sha256:0d4f459ba4fa394e3ba22a7421055878953aa92efd01e3a1d5216519c6b1586c \ + --hash=sha256:19091565dd9b5db9b3fa82459361c459387c01b11a656f36cab6a73284300c8c \ + --hash=sha256:1d5b202ffd4314c82f68b2431d928d596c45def381c018832003045f19ed857a \ + --hash=sha256:251d46d0d7cbed0d9b9eac2f91f6669893db9b87e19defb99f9a85579c2f786a \ + --hash=sha256:29ca29609a31f816c315844ed41b81247e3114261d26e5ee1dcc85bf5c046a36 \ + --hash=sha256:2bb2a659f31e1af87a3c4e41af3af69cb5a2bb4a335b35d8d6e80b43e8aed8e9 \ + --hash=sha256:41d6f81a5226e90f1bde95ce90a63430f58aea0c300f034b4055a7bfae187031 \ + --hash=sha256:4bb07da46377b7affe648ce34ac42fb3409e87b40b55d64f0fd23512e583ce46 \ + --hash=sha256:50aa62f63de3e591d739b4925816b84f4169e9086701a2722a5e7a1f6f273bc0 \ + --hash=sha256:56bf648a329257b127ee05667451e929c50ada7117737d14341a5399ca7860e1 \ + --hash=sha256:61d20cecc3efdc0e75bb7d5f4ae18929559003644b32945bfaa93b7e06cd94b6 \ + --hash=sha256:638c4b64159f8a3567e38705246bd1a2625d8c9adbb7ffa23a6a2ec2dfd40db0 \ + --hash=sha256:828f2a337eac4c3b24b43ab4edc8d8bc656f558a4f07aa2b173e007ce093bd49 \ + --hash=sha256:83e0a28e04218493ebd66c1f2a5290203ffff924ec01b37c5128ba1fa9731255 \ + --hash=sha256:846733011edad8c0125f2b1148783c8d2ae162419707bb7e2bf08a26040939d8 \ + --hash=sha256:87e8db4ea5023024a638826321039497dcbc7e70583bd33743eac2d8e69ca4fb \ + --hash=sha256:8bfea9007a654adc5c16d43d124fded0c788fdb2a6e2c470fcfd7d0076bda87e \ + --hash=sha256:8d0f0f61d007c1316ce79cde35ed52c0ce8ce229fd0f0bf8c9af2013ab4516a7 \ + --hash=sha256:990d60e9796fa142e16af331e53d91aaa94dfbcf37b474c1d6caf61310fcc5ee \ + --hash=sha256:9d0bbfa7cdb440f13d58e13625344b918b70ff0ccddc20ddd9c0ebf3e5a765dd \ + --hash=sha256:9fdbe2b22668f4021e909e65fa6a25bca1ab08294a35c600af95ba06a2f2d101 \ + --hash=sha256:b07d22e167b0af834344bd1c8619b702b823d8989d6884fc9719c6e871c413f5 \ + --hash=sha256:b379ed7ef0d174480e41a5f1dde3392d974e618bb91e5fbfa06396c24d3c80fc \ + --hash=sha256:b520792549e8b2b1e4c8777492783ba81065bd02e16e4390e2b299bf33f1feea \ + --hash=sha256:b5ef802b2b7e5dbebdfa338a0278e5212a6073c26764c75f3e373e2a9b01797c \ + --hash=sha256:c8fad077a989b002602aa192cfa95b89b3e40c5fa6da7740f42a87488bdbed6f \ + --hash=sha256:d53f5b24c732af5ae9c7e88fc9ba687ce2a785c63dcea3b9c984619f1bdcf71a \ + --hash=sha256:d76b512cc8db4ebdfb7879d7cae42ee0adc362671bc0a4f55df5f4ebe547602d \ + --hash=sha256:dadc4bdcbe808f0d1750f951b3b4211763f280116714cb9749ebae2262bdc49c \ + --hash=sha256:f44d2ea35daefac7ad1ede65695fde18526fb38f9ec0aadf108f629bb6c87293 \ + --hash=sha256:fa74eb299ec88319a6a46c9b59aeebf9782378d9724913bcb3fb746a3222f70a +ecdsa==0.19.0 \ + --hash=sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a \ + --hash=sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8 +ECPy==1.2.5 \ + --hash=sha256:559c92e42406d9d1a6b2b8fc26e6ad7bc985f33903b72f426a56cb1073a25ce3 \ + --hash=sha256:9635cffb9b6ecf7fd7f72aea1665829ac74a1d272006d0057d45a621aae20228 +eth-hash==0.7.0 \ + --hash=sha256:b8d5a230a2b251f4a291e3164a23a14057c4a6de4b0aa4a16fa4dc9161b57e2f \ + --hash=sha256:bacdc705bfd85dadd055ecd35fd1b4f846b671add101427e089a4ca2e8db310a +eth-typing==4.2.3 \ + --hash=sha256:8ee3ae7d4136d14fcb955c34f9dbef8e52170984d4dc68c0ab0d61621eab29d8 \ + --hash=sha256:b2df49fa89d2e85f2cc3fb1c903b0cd183d524f7a045e3db8cc720cf41adcd3d +eth-utils==4.1.1 \ + --hash=sha256:71c8d10dec7494aeed20fa7a4d52ec2ce4a2e52fdce80aab4f5c3c19f3648b25 \ + --hash=sha256:ccbbac68a6d65cb6e294c5bcb6c6a5cec79a241c56dc5d9c345ed788c30f8534 +flake8==7.0.0 \ + --hash=sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132 \ + --hash=sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3 +future==1.0.0 \ + --hash=sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216 \ + --hash=sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05 +hidapi==0.14.0 \ + --hash=sha256:01929fbbe206ebcb0bad9b8e925e16de0aa8f872bf80a263f599e519866d9900 \ + --hash=sha256:0fb47a0a8c3a6797306ea9eb8d1bdad68e5493ef5c8fa2e644501d56f2677551 \ + --hash=sha256:103dfa1c19832b8928775ec491c3016c9f9063dd2ccdc37811bf12f3cc0a789f \ + --hash=sha256:1370bc6a364fd292accd580a8d7bac4219932144d149f3a513bb472581eac421 \ + --hash=sha256:15f1fd34b0719d1e4d1bbc0bce325b318ee3e85c36fac0d23c6fb9d7f4d611db \ + --hash=sha256:174be08584e5c686fb02a6f51cc159d6e491fd7a7c7d1978b28f913362c7ad11 \ + --hash=sha256:1a63c0bc33329d0e572afe20b9dff27155d4fff34d0f2fa662e6704b9e2e18c4 \ + --hash=sha256:1a777912e93a9f773aa6359fdb7b152b654991bb9afd6d3ce20e52dfbf18db00 \ + --hash=sha256:1b4052f17321f5f0b641e020eae87db5bb0103f893198e61b2495358db83ddab \ + --hash=sha256:1c0959d89bc95acb4f9e6d58c8562281e22694959e42c10108193a1362b4fcd9 \ + --hash=sha256:2906ad143ec40009c33348ab4b3f7a9bdaa87b65bdc55983399bed47ee90a818 \ + --hash=sha256:2e635c037d28e1ceded2043d81b879d81348a278d1ae668954a5a7a7d383f7d7 \ + --hash=sha256:33098ba2f10f704a85b62720becf444a19753d3a1ee4b8dda7dc289c1d6eda9b \ + --hash=sha256:349976417f7f3371c7133a6427ed8f4faa06fbd93e9b5309d86689f25f191150 \ + --hash=sha256:365d7c9fdcae71ae41797dc2dd062dfed4362d1b36d21fa62afbc16c5ec3cd5a \ + --hash=sha256:3b8af9ef71b7149e85f2118eaac9fd7e7ea95528029a66f351d0049877d5a179 \ + --hash=sha256:3ed9f993a6f8a611c11ef213968c6972e17d7e8b27936349884c475dc0309e71 \ + --hash=sha256:4046bbfc67c5587ca638b875858569a8787e6955eff5dea4e424044de09fe7e4 \ + --hash=sha256:418de0a2ec786d610967984fe5d6cb9584413dcce8b9fdd23fff998596f80a95 \ + --hash=sha256:48e2cf77626f3cfdda9624de3be7f9c55e37efbb39882d2e96a92d38893a09cb \ + --hash=sha256:4b65cc159fcf1839d078d3de196146626c1a865bd9136fda5fa490f689e904c9 \ + --hash=sha256:4c78ff5c46128bdf68b2c4e4b08fac7765ef79f6ee7e17c8a2f7d3090a591d97 \ + --hash=sha256:5299d74d96bdc9eaa83496c972048db0027d012a08440b33bdb6dd10a7491da9 \ + --hash=sha256:537fc17d59e1de48c1832d5bda60d63f56bcb1300cce7e382d45b8ef3bcacd53 \ + --hash=sha256:5b960bcf8c41bd861554adc5932d1d7e0ed169315ca87dbd4d23ec8337764247 \ + --hash=sha256:5e3318f0e66c4d46977fc8ba73a2ad33c2de367d133b70b243051283d0ecdaca \ + --hash=sha256:60c034ec3ef3e5679232d9e6c003c4848e4772032d683f0b91ddb84b87d8698d \ + --hash=sha256:651c2382e974e866d78334cdde3c290a04fcbab4cec940c0d3586d77d11b9566 \ + --hash=sha256:6c000635c14f11ee3633530ef2d56de1ef266dc89b98f0a5f21e08ab8a9b151b \ + --hash=sha256:76041e2e5d52c864bc4a381f082edeb89e85829130d1fef3366f320237da0580 \ + --hash=sha256:78b176bc64a8908b37d5f34b3cce30158c1ebeaf1208c3b5ed62ad456fa1277d \ + --hash=sha256:7ef0f40a02e0b56fe2e7c93dfc9810245f2feeaa0c2ea76654d0768722883639 \ + --hash=sha256:810ad22831e4a150c2d6f27141fcf2826fd085ccacf4262d5c742c90aa81cd54 \ + --hash=sha256:832a2d2d8509d98381f0bf09b4e1f897765a9c8e0a72164174bcbf983d7d69a3 \ + --hash=sha256:833a32c3e44780f37d46dffd559b8e245034c92ae25060f752e4f34e9c7efe24 \ + --hash=sha256:86752ca0db00e5a5e991ebc5854400ff16d3812d6d9a156fea4de7d5f10ba801 \ + --hash=sha256:93697007df8ba38ab3ae3e777a6875cd1775fc720afe27e4c624cecbab7720de \ + --hash=sha256:93d7814aa1c7e0f1cce300b3b63828abecb024da72e9a10d46db811cf466e68e \ + --hash=sha256:96ecea60915212e59940db41c2a91709ebd4ec6a04e03b0db37a4ddb6825bee6 \ + --hash=sha256:9ab1b1dc8b915a0faa7b976ed8291142cf93c2acecf533db8c748fc64be1a004 \ + --hash=sha256:9e245719a5ede83c779dd99a4553002ae684d92d0f3e4274dcf06882b063f127 \ + --hash=sha256:9fdc08eb19f2fffb989124d1dbea3aa62dd0036615bbf464ceafee0353673bf4 \ + --hash=sha256:a68820a5de54a54d145d88f31c74257965bd03ae454263eda054f02bf34dcc9c \ + --hash=sha256:a6edc57962a9f30bff73fc0cc80915c9da9ab3e0892c601263198f8d21d8dfff \ + --hash=sha256:a7cb029286ced5426a381286526d9501846409701a29c2538615c3d1a612b8be \ + --hash=sha256:b054abf40b5aa7122314af59d0244fa274a50c4276d20695d8b7ff69564beb95 \ + --hash=sha256:b264c6a1a1a0cacacc82299785415bec91184cb3e4a77d127c40016086705327 \ + --hash=sha256:b4513311fad7e499ebb0d7a26178557b85044983199a280cb95c2038902fe1a0 \ + --hash=sha256:b4a0feac62d80eca36e2c8035fe4f57c440fbfcd9273a909112cb5bd9baae449 \ + --hash=sha256:b4f3a4e41886a19dcb9ea872a6f75ef42baba124a150b5b0a03379da174e1f70 \ + --hash=sha256:bb87cf8f23c15346bc1487e6f39d11b37d3ff7788037d3760b7907ea325b6d2c \ + --hash=sha256:c1425f523258d25d8f32a6493978532477c4d7507f5f9252417b1d629427871e \ + --hash=sha256:c1b1ded4a823cc5c2075a622b48d02bc0a72f57579ea24c956ef29649a49eb66 \ + --hash=sha256:c8bba64d6ed49fa7ea4f4515986450223f5c744be448c846fb0614bc53b536bd \ + --hash=sha256:cc654cd37d04bbb782c39901bf872b2af5d3c3ead2b1a23b084a81e469b6d0a7 \ + --hash=sha256:de293e7291b1ec813a97e42625c2c0a41b0d25d495b3dc5864bbb3dbbb5a719d \ + --hash=sha256:de5af3941f31cfb044a87fc9d9b2f80b3b71b58b27481d9877061b76e9625a22 \ + --hash=sha256:dff930adb37d1bcaeca3cf0dcec00eb72c109aa42c84858809cbae2972d79661 \ + --hash=sha256:e1927fc5f7099b98529a4cefe8e0cd92ffb026abf5c449310d1d359433c5d94a \ + --hash=sha256:e43f2db347b7faf3fcefb6c39f45615d1d6f58db7305d4474bb63b2845ed4fc8 \ + --hash=sha256:e5f01e21648a58de56c24a093e4901fca039b9658074b413c2a4ceb16ea6473b \ + --hash=sha256:e6ef0bdc69310cfdff83faf96c75492ac3d8cf355af275904f1dd90a3c5f24a4 \ + --hash=sha256:e7ff737cbb4adf238aa0da50e8b5c2f083e8f62b3c5132fbd732ba59918a909c \ + --hash=sha256:e822e899c13eb1e3a575712d7be5bd03a9103f6027b00ab4351c8404cec5719d \ + --hash=sha256:ed112c9ba0adf41d7e04bf5389dc150ada4d94a6ef1cb56c325d5aed1e4e07d2 \ + --hash=sha256:f575381efa788e1a894c68439644817b152b8a68ead643e42c23ba28eeedc33b \ + --hash=sha256:f68bbf88805553911e7e5a9b91136c96a54042b6e3d82d39d733d2edb46ff9a6 \ + --hash=sha256:fb4e94e45f6dddb20d59501187721e5d3b02e6cc8a59d261dd5cac739008582a \ + --hash=sha256:fc9ec2321bf3b0b4953910aa87c0c8ab5f93b1f113a9d3d4f18845ce54708d13 +idna==3.7 \ + --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ + --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 +importlib-metadata==7.1.0 \ + --hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \ + --hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2 +ledgerblue==0.1.54 \ + --hash=sha256:1e7f7d493e919c447a5c8ebeaea0373bdfda0bec216284cecdea07185fdf173e \ + --hash=sha256:df37562570ac4f9f38dc58f33af609c4689b1b7df889081889159d2a21d9c723 +libusb1==3.1.0 \ + --hash=sha256:4ee9b0a55f8bd0b3ea7017ae919a6c1f439af742c4a4b04543c5fd7af89b828c \ + --hash=sha256:77a06ecfb3d002d7c2ce369e28d0138b292fe8db8a3d102b73fda231a716dd35 \ + --hash=sha256:9d9f16e2c199cab91f48ead585d3f5ec7e8e4be428a25ddfed22abf786fa9b3a \ + --hash=sha256:bc7874302565721f443a27d8182fcc7152e5b560523f12f1377b130f473e4a0c +macholib==1.16.3 \ + --hash=sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30 \ + --hash=sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c +mccabe==0.7.0 \ + --hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \ + --hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e +mnemonic==0.21 \ + --hash=sha256:1fe496356820984f45559b1540c80ff10de448368929b9c60a2b55744cc88acf \ + --hash=sha256:72dc9de16ec5ef47287237b9b6943da11647a03fe7cf1f139fc3d7c4a7439288 +ndeflib==0.3.3 \ + --hash=sha256:1d56828558b9b16f2822a4051824346347b66adf5320ea86070748b6f2454a88 \ + --hash=sha256:c634b1af2ab454754f0fdbe1debd38247ed7bdaf94587359b857726f3ee7decb +nfcpy==1.0.4 \ + --hash=sha256:c1f3ecdd9755f9af46e89a945ed490354d089d5b19422e307159e256ff8c1b3d \ + --hash=sha256:e5bd08d0119e1d9e95d05215f838b07b44d03b651adddc523cc1a38892b8af6b +packaging==24.1 \ + --hash=sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002 \ + --hash=sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124 +parameterized==0.9.0 \ + --hash=sha256:4e0758e3d41bea3bbd05ec14fc2c24736723f243b28d702081aef438c9372b1b \ + --hash=sha256:7fc905272cefa4f364c1a3429cbbe9c0f98b793988efb5bf90aac80f08db09b1 +pillow==10.3.0 \ + --hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \ + --hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \ + --hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \ + --hash=sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d \ + --hash=sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa \ + --hash=sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3 \ + --hash=sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1 \ + --hash=sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a \ + --hash=sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd \ + --hash=sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8 \ + --hash=sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999 \ + --hash=sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599 \ + --hash=sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936 \ + --hash=sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375 \ + --hash=sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d \ + --hash=sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b \ + --hash=sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60 \ + --hash=sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572 \ + --hash=sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3 \ + --hash=sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced \ + --hash=sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f \ + --hash=sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b \ + --hash=sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19 \ + --hash=sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f \ + --hash=sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d \ + --hash=sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383 \ + --hash=sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795 \ + --hash=sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355 \ + --hash=sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57 \ + --hash=sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09 \ + --hash=sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b \ + --hash=sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462 \ + --hash=sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf \ + --hash=sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f \ + --hash=sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a \ + --hash=sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad \ + --hash=sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9 \ + --hash=sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d \ + --hash=sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45 \ + --hash=sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994 \ + --hash=sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d \ + --hash=sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338 \ + --hash=sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463 \ + --hash=sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451 \ + --hash=sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591 \ + --hash=sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c \ + --hash=sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd \ + --hash=sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32 \ + --hash=sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9 \ + --hash=sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf \ + --hash=sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5 \ + --hash=sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828 \ + --hash=sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3 \ + --hash=sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5 \ + --hash=sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2 \ + --hash=sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b \ + --hash=sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2 \ + --hash=sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475 \ + --hash=sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3 \ + --hash=sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb \ + --hash=sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef \ + --hash=sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015 \ + --hash=sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002 \ + --hash=sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170 \ + --hash=sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84 \ + --hash=sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57 \ + --hash=sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f \ + --hash=sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27 \ + --hash=sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a +pip-api==0.0.33 \ + --hash=sha256:1c2522ae21efcb034d89cc99f6cf1025293b31c63c29ee98b23f03a85f36bdae \ + --hash=sha256:b8d6eb5a87d3a9e112a20a8e9d24a6fc12d4e1c94d7595eeaf74be11ad47276c +pkgconfig==1.5.5 \ + --hash=sha256:d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209 \ + --hash=sha256:deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899 +platformdirs==4.2.2 \ + --hash=sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee \ + --hash=sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee +pycodestyle==2.11.1 \ + --hash=sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f \ + --hash=sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67 +pycparser==2.22 \ + --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ + --hash=sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc +pycryptodome==3.20.0 \ + --hash=sha256:06d6de87c19f967f03b4cf9b34e538ef46e99a337e9a61a77dbe44b2cbcf0690 \ + --hash=sha256:09609209ed7de61c2b560cc5c8c4fbf892f8b15b1faf7e4cbffac97db1fffda7 \ + --hash=sha256:210ba1b647837bfc42dd5a813cdecb5b86193ae11a3f5d972b9a0ae2c7e9e4b4 \ + --hash=sha256:2a1250b7ea809f752b68e3e6f3fd946b5939a52eaeea18c73bdab53e9ba3c2dd \ + --hash=sha256:2ab6ab0cb755154ad14e507d1df72de9897e99fd2d4922851a276ccc14f4f1a5 \ + --hash=sha256:3427d9e5310af6680678f4cce149f54e0bb4af60101c7f2c16fdf878b39ccccc \ + --hash=sha256:3cd3ef3aee1079ae44afaeee13393cf68b1058f70576b11439483e34f93cf818 \ + --hash=sha256:405002eafad114a2f9a930f5db65feef7b53c4784495dd8758069b89baf68eab \ + --hash=sha256:417a276aaa9cb3be91f9014e9d18d10e840a7a9b9a9be64a42f553c5b50b4d1d \ + --hash=sha256:4401564ebf37dfde45d096974c7a159b52eeabd9969135f0426907db367a652a \ + --hash=sha256:49a4c4dc60b78ec41d2afa392491d788c2e06edf48580fbfb0dd0f828af49d25 \ + --hash=sha256:5601c934c498cd267640b57569e73793cb9a83506f7c73a8ec57a516f5b0b091 \ + --hash=sha256:6e0e4a987d38cfc2e71b4a1b591bae4891eeabe5fa0f56154f576e26287bfdea \ + --hash=sha256:76658f0d942051d12a9bd08ca1b6b34fd762a8ee4240984f7c06ddfb55eaf15a \ + --hash=sha256:76cb39afede7055127e35a444c1c041d2e8d2f1f9c121ecef573757ba4cd2c3c \ + --hash=sha256:8d6b98d0d83d21fb757a182d52940d028564efe8147baa9ce0f38d057104ae72 \ + --hash=sha256:9b3ae153c89a480a0ec402e23db8d8d84a3833b65fa4b15b81b83be9d637aab9 \ + --hash=sha256:a60fedd2b37b4cb11ccb5d0399efe26db9e0dd149016c1cc6c8161974ceac2d6 \ + --hash=sha256:ac1c7c0624a862f2e53438a15c9259d1655325fc2ec4392e66dc46cdae24d044 \ + --hash=sha256:acae12b9ede49f38eb0ef76fdec2df2e94aad85ae46ec85be3648a57f0a7db04 \ + --hash=sha256:acc2614e2e5346a4a4eab6e199203034924313626f9620b7b4b38e9ad74b7e0c \ + --hash=sha256:acf6e43fa75aca2d33e93409f2dafe386fe051818ee79ee8a3e21de9caa2ac9e \ + --hash=sha256:baee115a9ba6c5d2709a1e88ffe62b73ecc044852a925dcb67713a288c4ec70f \ + --hash=sha256:c18b381553638414b38705f07d1ef0a7cf301bc78a5f9bc17a957eb19446834b \ + --hash=sha256:d29daa681517f4bc318cd8a23af87e1f2a7bad2fe361e8aa29c77d652a065de4 \ + --hash=sha256:d5954acfe9e00bc83ed9f5cb082ed22c592fbbef86dc48b907238be64ead5c33 \ + --hash=sha256:ec0bb1188c1d13426039af8ffcb4dbe3aad1d7680c35a62d8eaf2a529b5d3d4f \ + --hash=sha256:ec1f93feb3bb93380ab0ebf8b859e8e5678c0f010d2d78367cf6bc30bfeb148e \ + --hash=sha256:f0e6d631bae3f231d3634f91ae4da7a960f7ff87f2865b2d2b831af1dfb04e9a \ + --hash=sha256:f35d6cee81fa145333137009d9c8ba90951d7d77b67c79cbe5f03c7eb74d8fe2 \ + --hash=sha256:f47888542a0633baff535a04726948e876bf1ed880fddb7c10a736fa99146ab3 \ + --hash=sha256:fb3b87461fa35afa19c971b0a2b7456a7b1db7b4eba9a8424666104925b78128 +pycryptodomex==3.20.0 \ + --hash=sha256:0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1 \ + --hash=sha256:108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305 \ + --hash=sha256:19764605feea0df966445d46533729b645033f134baeb3ea26ad518c9fdf212c \ + --hash=sha256:1be97461c439a6af4fe1cf8bf6ca5936d3db252737d2f379cc6b2e394e12a458 \ + --hash=sha256:25cd61e846aaab76d5791d006497134602a9e451e954833018161befc3b5b9ed \ + --hash=sha256:2a47bcc478741b71273b917232f521fd5704ab4b25d301669879e7273d3586cc \ + --hash=sha256:59af01efb011b0e8b686ba7758d59cf4a8263f9ad35911bfe3f416cee4f5c08c \ + --hash=sha256:5dcac11031a71348faaed1f403a0debd56bf5404232284cf8c761ff918886ebc \ + --hash=sha256:62a5ec91388984909bb5398ea49ee61b68ecb579123694bffa172c3b0a107079 \ + --hash=sha256:645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb \ + --hash=sha256:653b29b0819605fe0898829c8ad6400a6ccde096146730c2da54eede9b7b8baa \ + --hash=sha256:69138068268127cd605e03438312d8f271135a33140e2742b417d027a0539427 \ + --hash=sha256:6e186342cfcc3aafaad565cbd496060e5a614b441cacc3995ef0091115c1f6c5 \ + --hash=sha256:76bd15bb65c14900d98835fcd10f59e5e0435077431d3a394b60b15864fddd64 \ + --hash=sha256:7805830e0c56d88f4d491fa5ac640dfc894c5ec570d1ece6ed1546e9df2e98d6 \ + --hash=sha256:7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e \ + --hash=sha256:7a7a8f33a1f1fb762ede6cc9cbab8f2a9ba13b196bfaf7bc6f0b39d2ba315a43 \ + --hash=sha256:82ee7696ed8eb9a82c7037f32ba9b7c59e51dda6f105b39f043b6ef293989cb3 \ + --hash=sha256:88afd7a3af7ddddd42c2deda43d53d3dfc016c11327d0915f90ca34ebda91499 \ + --hash=sha256:8af1a451ff9e123d0d8bd5d5e60f8e3315c3a64f3cdd6bc853e26090e195cdc8 \ + --hash=sha256:8ee606964553c1a0bc74057dd8782a37d1c2bc0f01b83193b6f8bb14523b877b \ + --hash=sha256:91852d4480a4537d169c29a9d104dda44094c78f1f5b67bca76c29a91042b623 \ + --hash=sha256:9c682436c359b5ada67e882fec34689726a09c461efd75b6ea77b2403d5665b7 \ + --hash=sha256:bc3ee1b4d97081260d92ae813a83de4d2653206967c4a0a017580f8b9548ddbc \ + --hash=sha256:bca649483d5ed251d06daf25957f802e44e6bb6df2e8f218ae71968ff8f8edc4 \ + --hash=sha256:c39778fd0548d78917b61f03c1fa8bfda6cfcf98c767decf360945fe6f97461e \ + --hash=sha256:cbe71b6712429650e3883dc81286edb94c328ffcd24849accac0a4dbcc76958a \ + --hash=sha256:d00fe8596e1cc46b44bf3907354e9377aa030ec4cd04afbbf6e899fc1e2a7781 \ + --hash=sha256:d3584623e68a5064a04748fb6d76117a21a7cb5eaba20608a41c7d0c61721794 \ + --hash=sha256:e48217c7901edd95f9f097feaa0388da215ed14ce2ece803d3f300b4e694abea \ + --hash=sha256:f2e497413560e03421484189a6b65e33fe800d3bd75590e6d78d4dfdb7accf3b \ + --hash=sha256:ff5c9a67f8a4fba4aed887216e32cbc48f2a6fb2673bb10a99e43be463e15913 +pyDes==2.0.1 \ + --hash=sha256:e2ab8e21d2b83e90d90dbfdcb6fb8ac0000b813238b7ecaede04f8435c389012 +pyee==11.1.0 \ + --hash=sha256:5d346a7d0f861a4b2e6c47960295bd895f816725b27d656181947346be98d7c1 \ + --hash=sha256:b53af98f6990c810edd9b56b87791021a8f54fd13db4edd1142438d44ba2263f +pyelftools==0.31 \ + --hash=sha256:c774416b10310156879443b81187d182d8d9ee499660380e645918b50bc88f99 \ + --hash=sha256:f52de7b3c7e8c64c8abc04a79a1cf37ac5fb0b8a49809827130b858944840607 +pyflakes==3.2.0 \ + --hash=sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f \ + --hash=sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a +pyinstaller==6.8.0 \ + --hash=sha256:000c36b13fe4cd8d0d8c2bc855b1ddcf39867b5adf389e6b5ca45b25fa3e619d \ + --hash=sha256:1c3060a263758cf7f0144ab4c016097b20451b2469d468763414665db1bb743d \ + --hash=sha256:2b71509468c811968c0b5decb5bbe85b6292ea52d7b1f26313d2aabb673fa9a5 \ + --hash=sha256:355832a3acc7de90a255ecacd4b9f9e166a547a79c8905d49f14e3a75c1acdb9 \ + --hash=sha256:39ac424d2ee2457d2ab11a5091436e75a0cccae207d460d180aa1fcbbafdd528 \ + --hash=sha256:3f4b6520f4423fe19bcc2fd63ab7238851ae2bdcbc98f25bc5d2f97cc62012e9 \ + --hash=sha256:5ff6bc2784c1026f8e2f04aa3760cbed41408e108a9d4cf1dd52ee8351a3f6e1 \ + --hash=sha256:6303c7a009f47e6a96ef65aed49f41e36ece8d079b9193ca92fe807403e5fe80 \ + --hash=sha256:81cccfa9b16699b457f4788c5cc119b50f3cd4d0db924955f15c33f2ad27a50d \ + --hash=sha256:d257f6645c7334cbd66f38a4fac62c3ad614cc46302b2b5d9f8cc48c563bce0e \ + --hash=sha256:fe0af018d7d5077180e3144ada89a4da5df8d07716eb7e9482834a56dc57a4e8 \ + --hash=sha256:ff31c5b99e05a4384bbe2071df67ec8b2b347640a375eae9b40218be2f1754c6 +pyinstaller-hooks-contrib==2024.7 \ + --hash=sha256:8bf0775771fbaf96bcd2f4dfd6f7ae6c1dd1b1efe254c7e50477b3c08e7841d8 \ + --hash=sha256:fd5f37dcf99bece184e40642af88be16a9b89613ecb958a8bd1136634fc9fac5 +pyparsing==3.1.2 \ + --hash=sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad \ + --hash=sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742 +pyserial==3.5 \ + --hash=sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb \ + --hash=sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0 +python-bitcoinlib==0.12.2 \ + --hash=sha256:2f29a9f475f21c12169b3a6cc8820f34f11362d7ff1200a5703dce3e4e903a44 \ + --hash=sha256:c65ab61427c77c38d397bfc431f71d86fd355b453a536496ec3fcb41bd10087d +python-gnupg==0.5.2 \ + --hash=sha256:01d8013931c9fa3f45824bbea7054c03d6e11f258a72e7e086e168dbcb91854c \ + --hash=sha256:72ce142af6da7f07e433fef148b445fb3e07854acd2f88739008838745c0e9f5 python-u2flib-host==3.0.3 \ --hash=sha256:ab678b9dc29466a779efcaa2f0150dce35059a7d17680fc26057fa599a53fc0a -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 -rlp==1.2.0 \ - --hash=sha256:27273fc2dbc3513c1e05ea6b8af28aac8745fb09c164e39e2ed2807bf7e1b342 \ - --hash=sha256:97b7e770f16442772311b33e6bc28b45318e7c8def69b9df16452304e224e9df -secp256k1==0.13.2 \ - --hash=sha256:29521dda0f3ad51afc26141d9a564b40bb39e84d27046164c502774b22ea2f9c \ - --hash=sha256:2ad20bb8553425be795ecaf6641a510470701fa6a7aa9c54395d3989c070ab4c \ - --hash=sha256:5cded8e5d241dd92f6e55fd7462ff74e4edcbe97850b7bf4378cc56e48e446d7 \ - --hash=sha256:a3b43e02d321c09eafa769a6fc2c156f555cab3a7db62175ef2fd21e16cdf20c \ - --hash=sha256:a598f2223ed3bf55bb7e317c5ebd1a316b3b4d65db26de32554bb84adf026eae \ - --hash=sha256:a755c85947b70c69cf318412bfd12889863e70ddf76b588701835a4da5322d55 \ - --hash=sha256:df29091e6ac74bb0683a44d57411bd59c6c99d04d79ef4e396e4a67d91f6bd65 \ - --hash=sha256:e86eab58d0c2e93c08483c8a8546fe54ade8150ff4a1f320417d647635cb133b \ - --hash=sha256:e9842fdc3b24c3174f49794d93b10b2013aa7b5d7029d12989458482c95ee56a -six==1.14.0 \ - --hash=sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a \ - --hash=sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c -toolz==0.10.0 \ - --hash=sha256:08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560 -urllib3==1.26.18 \ - --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ - --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 -websocket_client==0.57.0 \ - --hash=sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549 \ - --hash=sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010 -flake8==3.9.2 \ - --hash=sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b \ - --hash=sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907 -pyflakes==2.3.1 \ - --hash=sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3 \ - --hash=sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db -importlib-metadata==4.8.1 \ - --hash=sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15 \ - --hash=sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1 -pycodestyle==2.7.0 \ - --hash=sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068 \ - --hash=sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef -mccabe==0.6.1 \ - --hash=sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42 \ - --hash=sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f -zipp==3.5.0 \ - --hash=sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3 \ - --hash=sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4 -typing-extensions==3.10.0.2 \ - --hash=sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e \ - --hash=sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7 \ - --hash=sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34 -yapf==0.31.0 \ - --hash=sha256:408fb9a2b254c302f49db83c59f9aa0b4b0fd0ec25be3a5c51181327922ff63d \ - --hash=sha256:e3a234ba8455fe201eaa649cdac872d590089a18b661e39bbac7020978dd9c2e -charset-normalizer==2.0.6 \ - --hash=sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6 \ - --hash=sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f -coverage==7.2.7 \ - --hash=sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f \ - --hash=sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2 \ - --hash=sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a \ - --hash=sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a \ - --hash=sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01 \ - --hash=sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6 \ - --hash=sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7 \ - --hash=sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f \ - --hash=sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02 \ - --hash=sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c \ - --hash=sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063 \ - --hash=sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a \ - --hash=sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5 \ - --hash=sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959 \ - --hash=sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97 \ - --hash=sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6 \ - --hash=sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f \ - --hash=sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9 \ - --hash=sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5 \ - --hash=sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f \ - --hash=sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562 \ - --hash=sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe \ - --hash=sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9 \ - --hash=sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f \ - --hash=sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb \ - --hash=sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb \ - --hash=sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1 \ - --hash=sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb \ - --hash=sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250 \ - --hash=sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e \ - --hash=sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511 \ - --hash=sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5 \ - --hash=sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59 \ - --hash=sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2 \ - --hash=sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d \ - --hash=sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3 \ - --hash=sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4 \ - --hash=sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de \ - --hash=sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9 \ - --hash=sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833 \ - --hash=sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0 \ - --hash=sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9 \ - --hash=sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d \ - --hash=sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050 \ - --hash=sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d \ - --hash=sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6 \ - --hash=sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353 \ - --hash=sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb \ - --hash=sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e \ - --hash=sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8 \ - --hash=sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495 \ - --hash=sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2 \ - --hash=sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd \ - --hash=sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27 \ - --hash=sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1 \ - --hash=sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818 \ - --hash=sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4 \ - --hash=sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e \ - --hash=sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850 \ - --hash=sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3 +requests==2.32.3 \ + --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ + --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 +rlp==4.0.1 \ + --hash=sha256:bcefb11013dfadf8902642337923bd0c786dc8a27cb4c21da6e154e52869ecb1 \ + --hash=sha256:ff6846c3c27b97ee0492373aa074a7c3046aadd973320f4fffa7ac45564b0258 +secp256k1==0.14.0 \ + --hash=sha256:130f119b06142e597c10eb4470b5a38eae865362d01aaef06b113478d77f728d \ + --hash=sha256:373dc8bca735f3c2d73259aa2711a9ecea2f3c7edbb663555fe3422e3dd76102 \ + --hash=sha256:3aedcfe6eb1c5fa7c6be25b7cc91c76d8eb984271920ba0f7a934ae41ed56f51 \ + --hash=sha256:4b1bf09953cde181132cf5e9033065615e5c2694e803165e2db763efa47695e5 \ + --hash=sha256:63eb148196b8f646922d4be6739b17fbbf50ebb3a020078c823e2445d88b7a81 \ + --hash=sha256:6af07be5f8612628c3638dc7b208f6cc78d0abae3e25797eadb13890c7d5da81 \ + --hash=sha256:72735da6cb28273e924431cd40aa607e7f80ef09608c8c9300be2e0e1d2417b4 \ + --hash=sha256:7a27c479ab60571502516a1506a562d0a9df062de8ad645313fabfcc97252816 \ + --hash=sha256:82c06712d69ef945220c8b53c1a0d424c2ff6a1f64aee609030df79ad8383397 \ + --hash=sha256:87f4ad42a370f768910585989a301d1d65de17dcd86f6e8def9b021364b34d5c \ + --hash=sha256:97a30c8dae633cb18135c76b6517ae99dc59106818e8985be70dbc05dcc06c0d \ + --hash=sha256:a8dbd75a9fb6f42de307f3c5e24573fe59c3374637cbf39136edc66c200a4029 \ + --hash=sha256:adc23a4c5d24c95191638eb2ca313097827f07db102e77b59faed15d50c98cae \ + --hash=sha256:bc761894b3634021686714278fc62b73395fa3eded33453eadfd8a00a6c44ef3 \ + --hash=sha256:c91dd3154f6c46ac798d9a41166120e1751222587f54516cc3f378f56ce4ac82 \ + --hash=sha256:c9e7c024ff17e9b9d7c392bb2a917da231d6cb40ab119389ff1f51dca10339a4 \ + --hash=sha256:ce0314788d3248b275426501228969fd32f6501c9d1837902ee0e7bd8264a36f \ + --hash=sha256:f4062d8c101aa63b9ecb3709f1f075ad9c01b6672869bbaa1bd77271816936a7 \ + --hash=sha256:f4b9306bff6dde020444dfee9ca9b9f5b20ca53a2c0b04898361a3f43d5daf2e \ + --hash=sha256:f666c67dcf1dc69e1448b2ede5e12aaf382b600204a61dbc65e4f82cea444405 \ + --hash=sha256:fcabb3c3497a902fb61eec72d1b69bf72747d7bcc2a732d56d9319a1e8322262 \ + --hash=sha256:fe3f503c9dfdf663b500d3e0688ad842e116c2907ad3f1e1d685812df3f56290 \ + --hash=sha256:fec790cb6d0d37129ca0ce5b3f8e85692d5fb618d1c440f189453d18694035df +setuptools==70.0.0 \ + --hash=sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4 \ + --hash=sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0 +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 +tomli==2.0.1 \ + --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ + --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f +toolz==0.12.1 \ + --hash=sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85 \ + --hash=sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d +typing-extensions==4.12.2 \ + --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ + --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 +urllib3==2.2.1 \ + --hash=sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d \ + --hash=sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19 +websocket-client==1.8.0 \ + --hash=sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 \ + --hash=sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da +wheel==0.43.0 \ + --hash=sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 \ + --hash=sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81 +yapf==0.40.2 \ + --hash=sha256:4dab8a5ed7134e26d57c1647c7483afb3f136878b579062b786c9ba16b94637b \ + --hash=sha256:adc8b5dd02c0143108878c499284205adb258aad6db6634e5b869e7ee2bd548b +zipp==3.19.2 \ + --hash=sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19 \ + --hash=sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c diff --git a/docker/packer/Dockerfile b/docker/packer/Dockerfile index 138da848..b2834188 100644 --- a/docker/packer/Dockerfile +++ b/docker/packer/Dockerfile @@ -1,6 +1,6 @@ -FROM debian:bullseye-slim +FROM debian:bookworm-slim WORKDIR /hsm2 RUN apt-get update && \ - apt-get install -y apt-utils binutils=2.35.2-2 vim + apt-get install -y apt-utils binutils=2.40-2 vim diff --git a/firmware/src/hal/src/x86/endorsement.c b/firmware/src/hal/src/x86/endorsement.c index a449e950..8bf7c6fa 100644 --- a/firmware/src/hal/src/x86/endorsement.c +++ b/firmware/src/hal/src/x86/endorsement.c @@ -55,7 +55,7 @@ static size_t tweak_sign(const unsigned char* key, // Tweak private key memmove(tweaked_key, key, sizeof(tweaked_key)); - if (!secp256k1_ec_privkey_tweak_add(sp_ctx, tweaked_key, tweak)) + if (!secp256k1_ec_seckey_tweak_add(sp_ctx, tweaked_key, tweak)) return 0; // Sign and serialize as DER diff --git a/firmware/test/misc/blockdump.py b/firmware/test/misc/blockdump.py index 2839fce3..c72aa026 100644 --- a/firmware/test/misc/blockdump.py +++ b/firmware/test/misc/blockdump.py @@ -32,7 +32,7 @@ import os import re import rlp -import sha3 +from comm.utils import keccak_256 @click.command() @@ -50,7 +50,7 @@ def blockdump(split_dir): for j, block_rlp in enumerate(blocks): block = rlp.decode(bytes.fromhex(block_rlp)) - block_hash = sha3.keccak_256(rlp.encode(block[:-2])).digest().hex() + block_hash = keccak_256(rlp.encode(block[:-2])).hex() print(f"Block #{j} hash = {block_hash}") if j == len(blocks) - 1: diff --git a/firmware/test/misc/hex2c.py b/firmware/test/misc/hex2c.py index a6b0c666..52674fa8 100644 --- a/firmware/test/misc/hex2c.py +++ b/firmware/test/misc/hex2c.py @@ -38,9 +38,9 @@ def chunks(lst, n): try: cbs = list(chunks(bytes.fromhex(sys.argv[1]), BYTES_PER_LINE)) - lines = map(lambda l: "".join(map(lambda b: "\\x" + hex(b)[2:].rjust(2, "0"), l)), - cbs) - lines = map(lambda l: f'"{l}"', lines) + lines = map(lambda line: "".join(map(lambda b: "\\x" + hex(b)[2:].rjust(2, "0"), + line)), cbs) + lines = map(lambda line: f'"{line}"', lines) print("\n".join(lines)) # print("".join(cv)) except Exception as e: diff --git a/firmware/test/misc/mine.py b/firmware/test/misc/mine.py index 4e77f9a6..e768048f 100644 --- a/firmware/test/misc/mine.py +++ b/firmware/test/misc/mine.py @@ -27,8 +27,8 @@ import rlp import sys import hashlib -import sha3 import json +from comm.utils import keccak_256 sys.path.append("../../../../middleware") @@ -70,8 +70,7 @@ def mine(block_hex, np, mm_mp_nodes, brothers_difficulties): for brother_difficulty in brothers_difficulties: brother = new_block[:] # Change the uncles hash to make the block different - brother[1] = sha3.keccak_256( - bytes([brother_index])).digest() + brother[1] = keccak_256(bytes([brother_index])) # Specified difficulty brother[7] = to_bytes(brother_difficulty) brothers.append( diff --git a/firmware/test/misc/rsk_block.py b/firmware/test/misc/rsk_block.py index 79b92393..27f6994a 100644 --- a/firmware/test/misc/rsk_block.py +++ b/firmware/test/misc/rsk_block.py @@ -20,13 +20,13 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import sha3 import rlp from rsk_utils import rlp_decode_list_of_expected_length from comm.utils import bitwise_and_bytes from rsk_netparams import NetworkUpgrades import comm.pow as pow import comm.bitcoin +from comm.utils import keccak_256 import logging @@ -171,7 +171,7 @@ def __decode(self, mm_is_mandatory): # and the merged mining coinbase transaction. # The fields to leave out are exactly the last two, regardless # of whether a UMM hash is present or not. - self.__hash = sha3.keccak_256(rlp.encode(rlp_items[:-2])).digest().hex() + self.__hash = keccak_256(rlp.encode(rlp_items[:-2])).hex() # *** Compute the hash for merge mining and its comparison mask *** # *** IMPORTANT: this only applies if the merged mining fields are present *** @@ -189,8 +189,8 @@ def __decode(self, mm_is_mandatory): # The rest remains. # (1) Compute the hash leaving out merge mining fields. - self.__hash_for_merge_mining = sha3.keccak_256(rlp.encode( - rlp_items[:-3])).digest() + self.__hash_for_merge_mining = keccak_256(rlp.encode( + rlp_items[:-3])) # (2) Only the first 20 bytes of the original hash are to be taken # into account. Also, last 4 bytes must be the current block number @@ -211,9 +211,9 @@ def __decode(self, mm_is_mandatory): # and trim to 20 bytes if self.is_umm: self.__hash_for_merge_mining = ( - sha3.keccak_256( + keccak_256( self.__hash_for_merge_mining[:self.__HASH_FOR_MM_PREFIX_SIZE] + - bytes.fromhex(self.__umm_root)).digest() + bytes.fromhex(self.__umm_root)) [:self.__HASH_FOR_MM_PREFIX_SIZE] + self.__hash_for_merge_mining[self.__HASH_FOR_MM_PREFIX_SIZE:]) diff --git a/middleware/admin/signer_authorization.py b/middleware/admin/signer_authorization.py index 20e258ac..2793452f 100644 --- a/middleware/admin/signer_authorization.py +++ b/middleware/admin/signer_authorization.py @@ -22,8 +22,7 @@ import json import secp256k1 as ec -import sha3 -from .utils import is_hex_string_of_length, hex_or_decimal_string_to_int +from .utils import is_hex_string_of_length, hex_or_decimal_string_to_int, keccak_256 from .ledger_utils import encode_eth_message @@ -101,7 +100,7 @@ def _assert_signature_valid(self, signature): class SignerVersion: def __init__(self, hash, iteration): - if not(is_hex_string_of_length(hash, 32)): + if not is_hex_string_of_length(hash, 32): raise ValueError("Hash must be a 32-byte hex string") if type(iteration) == str: @@ -129,7 +128,7 @@ def get_authorization_msg(self): return encode_eth_message(self.msg) def get_authorization_digest(self): - return sha3.keccak_256(self.get_authorization_msg()).digest() + return keccak_256(self.get_authorization_msg()) def to_dict(self): return { diff --git a/middleware/comm/english_mnemonic.py b/middleware/comm/english_mnemonic.py index a49617ac..3189570a 100644 --- a/middleware/comm/english_mnemonic.py +++ b/middleware/comm/english_mnemonic.py @@ -33,6 +33,7 @@ def detect_language(cls, code): def __init__(self): self.wordlist = _ENGLISH_WORDLIST + super().__init__() _ENGLISH_WORDLIST = [ diff --git a/middleware/comm/protocol.py b/middleware/comm/protocol.py index 1cb3b0b4..47caff36 100644 --- a/middleware/comm/protocol.py +++ b/middleware/comm/protocol.py @@ -423,8 +423,8 @@ def _validate_signer_heartbeat(self, request): if ( "udValue" not in request or type(request["udValue"]) != str - or not(is_hex_string_of_length(request["udValue"], - self.SIGNER_HBT_UD_VALUE_SIZE)) + or not is_hex_string_of_length(request["udValue"], + self.SIGNER_HBT_UD_VALUE_SIZE) ): self.logger.info( "User defined value field not present or not a " @@ -442,7 +442,7 @@ def _validate_ui_heartbeat(self, request): if ( "udValue" not in request or type(request["udValue"]) != str - or not(is_hex_string_of_length(request["udValue"], self.UI_HBT_UD_VALUE_SIZE)) + or not is_hex_string_of_length(request["udValue"], self.UI_HBT_UD_VALUE_SIZE) ): self.logger.info( "User defined value field not present or not a " diff --git a/middleware/comm/utils.py b/middleware/comm/utils.py index 3e682fc8..bee30266 100644 --- a/middleware/comm/utils.py +++ b/middleware/comm/utils.py @@ -21,6 +21,7 @@ # SOFTWARE. import re +from Crypto.Hash import keccak def bitwise_and_bytes(bs1, bs2): @@ -141,3 +142,8 @@ def slice_from_str(s): stop = None if gs[1] == "" else int(gs[1]) return slice(start, stop, 1) + + +# One round Keccak-256 +def keccak_256(bs): + return keccak.new(digest_bits=256).update(bs).digest() diff --git a/middleware/ledger/block_utils.py b/middleware/ledger/block_utils.py index 767a3c41..188a6aa9 100644 --- a/middleware/ledger/block_utils.py +++ b/middleware/ledger/block_utils.py @@ -21,7 +21,7 @@ # SOFTWARE. import rlp -import sha3 +from comm.utils import keccak_256 # Compute the given block's top-level RLP encoding list payload length in bytes, @@ -71,10 +71,10 @@ def remove_mm_fields_if_present(raw_block_hex, leave_btcblock=True, hex=True): # Given a raw block hex, compute its block hash # and return it as a hex string def get_block_hash(raw_block_hex): - return sha3.keccak_256(remove_mm_fields_if_present( + return keccak_256(remove_mm_fields_if_present( raw_block_hex, leave_btcblock=True, - hex=False)).digest().hex() + hex=False)).hex() # Given a raw block hex, diff --git a/middleware/ledger/protocol.py b/middleware/ledger/protocol.py index 04c0ee3f..b66dc121 100644 --- a/middleware/ledger/protocol.py +++ b/middleware/ledger/protocol.py @@ -481,7 +481,7 @@ def _signer_heartbeat(self, request): heartbeat = self.hsm2dongle.get_signer_heartbeat(request["udValue"]) # Treat any user-errors as a device (unexpected) error - if not(heartbeat[0]): + if not heartbeat[0]: return (self.ERROR_CODE_DEVICE,) heartbeat = heartbeat[1] @@ -512,8 +512,8 @@ def _ui_heartbeat(self, request): # Can only gather the UI heartbeat from either the Signer or # the UI heartbeat mode itself - if not(initial_mode in [self.hsm2dongle.MODE.SIGNER, - self.hsm2dongle.MODE.UI_HEARTBEAT]): + if initial_mode not in [self.hsm2dongle.MODE.SIGNER, + self.hsm2dongle.MODE.UI_HEARTBEAT]: self.logger.error("Dongle not in Signer or UI heartbeat mode when" " trying to gather UI heartbeat") return (self.ERROR_CODE_DEVICE,) @@ -555,7 +555,7 @@ def _ui_heartbeat(self, request): return (self.ERROR_CODE_DEVICE,) # Treat any user-errors as a device (unexpected) error - if not(heartbeat[0]): + if not heartbeat[0]: return (self.ERROR_CODE_DEVICE,) heartbeat = heartbeat[1] diff --git a/middleware/tests/admin/test_signer_authorization.py b/middleware/tests/admin/test_signer_authorization.py index 6150689f..963301df 100644 --- a/middleware/tests/admin/test_signer_authorization.py +++ b/middleware/tests/admin/test_signer_authorization.py @@ -23,7 +23,7 @@ from unittest import TestCase from unittest.mock import patch, call, mock_open from admin.signer_authorization import SignerAuthorization, SignerVersion -import sha3 +from comm.utils import keccak_256 import json import logging @@ -262,9 +262,9 @@ def test_authorization_digest(self): sv = SignerVersion("aa" + "BB"*30 + "cc", "0x2d") self.assertEqual( - sha3.keccak_256(b"\x19Ethereum Signed Message:\n95RSK_powHSM_" - b"signer_aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" - b"bbbbbbbbbbcc_iteration_45").digest(), + keccak_256(b"\x19Ethereum Signed Message:\n95RSK_powHSM_" + b"signer_aabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + b"bbbbbbbbbbcc_iteration_45"), sv.get_authorization_digest()) def test_to_dict(self): diff --git a/middleware/tests/comm/test_utils.py b/middleware/tests/comm/test_utils.py index f3fc7291..8575b953 100644 --- a/middleware/tests/comm/test_utils.py +++ b/middleware/tests/comm/test_utils.py @@ -21,7 +21,8 @@ # SOFTWARE. from unittest import TestCase -from comm.utils import bitwise_and_bytes +from comm.utils import bitwise_and_bytes, keccak_256 +from parameterized import parameterized import logging @@ -55,3 +56,1198 @@ def test_mixed(self): bitwise_and_bytes(bytes.fromhex("123456779a"), bytes.fromhex("0406080e0d")).hex(), ) + + +class TestKeccak256(TestCase): + @parameterized.expand([ + ( + "6a78a0e87ab53aaeb1810ccfbab51a3f062bd221afa404c12aebfe41d3c88073", + "f90248a00ad0ac1215b39aa39f9ddd4625f195d13191e3934625c86d127176d2bb4bcea6a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda07a4da5ef34d94058eab34f1261d281f8f7f01e73" + "67e54a3665979e3a38a03362a08aebbd439d56a04717a33d3e68d3ef2abf1d718989fd28fa" + "7d772b8398148a62a0bbcf0459001d234dffe0391d7b5975ddc7c338a06b268219730cac27" + "67e65748b90100000000000000000000000000000000000200000000000000000000000000" + "00000000400000000000000000000000000000000100010000000008000000000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00000000008000100000000000000000000104000000000000000000000000002000010000" + "00002000001000000000000000000000000000000000800010000200000000000020000000" + "000000008949f75282179acb0408834461718367c280830239a78462d5f4408fce018c4952" + "49532d626130316561328608a45a3247cd84037eb65f8080b85000004020e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000017e459694375736ef47d4703" + "8d643aa3b722eba4a17055eb85eb1e015f37bf8941f4d562afa709177a99b899" + ), + ( + "6a78a0e87ab53aaeb1810ccfbab51a3f062bd221afa404c12aebfe41d3c88073", + "f90248a00ad0ac1215b39aa39f9ddd4625f195d13191e3934625c86d127176d2bb4bcea6a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda07a4da5ef34d94058eab34f1261d281f8f7f01e73" + "67e54a3665979e3a38a03362a08aebbd439d56a04717a33d3e68d3ef2abf1d718989fd28fa" + "7d772b8398148a62a0bbcf0459001d234dffe0391d7b5975ddc7c338a06b268219730cac27" + "67e65748b90100000000000000000000000000000000000200000000000000000000000000" + "00000000400000000000000000000000000000000100010000000008000000000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00000000008000100000000000000000000104000000000000000000000000002000010000" + "00002000001000000000000000000000000000000000800010000200000000000020000000" + "000000008949f75282179acb0408834461718367c280830239a78462d5f4408fce018c4952" + "49532d626130316561328608a45a3247cd84037eb65f8080b85000004020e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000017e459694375736ef47d4703" + "8d643aa3b722eba4a17055eb85eb1e015f37bf8941f4d562afa709177a99b899" + ), + ( + "0ad0ac1215b39aa39f9ddd4625f195d13191e3934625c86d127176d2bb4bcea6", + "f90248a061a93032f377e88296232dc82900ae75f3c750bf0c377bae3bd636345b8ba0b9a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda04951aae498394c895624ae61744e576a9f6330db" + "973af549dfc666d59ef7a871a0ce6dd6db39e9d589f345c4939c73838c23ce3a7d24da8c11" + "956ccd18dcee9b3ca0c069f825c3d98c8055835a8073d872728b0e86e46edb0d94b1b9ddc5" + "6b754f86b90100000000000000000004000000000000000000000000000000000000000000" + "00000010000000000000000000000000000000000000000000000008000000000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000008000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000400000000000000000100020000000000000000000" + "00000000000000100000000000000000000100000000000000000000000000002000010000" + "00002000201000000000000000000000000000000000800000000208000000000000000000" + "000000008949c81a1f741d47a2fc834461708367c2808301b7838462d5f43c8fce018c4952" + "49532d626130316561328606b81bb6bcd0840375da968080b85000000020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000c00cd9e20a0ca1bb064094de" + "c79f4cead7b1b5fa434d6eb805776725d44413e33ef4d562afa70917809dcef0" + ), + ( + "61a93032f377e88296232dc82900ae75f3c750bf0c377bae3bd636345b8ba0b9", + "f90248a066212b116661da0afdadbc4ee78496c4f6e70533c06c34875a15aa8263294f7ba0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479412d3178a" + "62ef1f520944534ed04504609f7307a1a0513d7968ecf9f4a82c342f4ca264bd4f1b07da96" + "191933fd642b3e5adf2f4f12a06191337954134114775c3c5bd14a78a2538085123ea66777" + "441fdbf24ea078cda084df259b1e114f3d4e36c97475afeb6224e21307738fb90ae157130e" + "976abf30b90100000000000000000000000000800209000000000000000000400000000001" + "0004010000000800100000040000000020000004000100100000800c040000300000008000" + "8000000800000000080400008000000080004004000c000220084000000004000200000040" + "20000000400040000210000000011600000800100000000080000080000400080000000105" + "0000c000002020000000000012001000400000124000080000100824000a00004000000012" + "00001040002000108800000c40000000000300004400200000000000801000002000018000" + "00002000021000000040124100000000000000080000804400000200001400000000000200" + "10001000894998ffe2169e2a17688344616f8367c280830de6a88462d5f4388fce018c4952" + "49532d353834303665308635fcb67ad03884036d15418080b85004004020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000b5a9103012c69607d0ac6d95" + "ac5b2e092f1e3df6909c95a1d3b735f8c1d7640339f4d562afa70917751172ab" + ), + ( + "66212b116661da0afdadbc4ee78496c4f6e70533c06c34875a15aa8263294f7b", + "f90248a0419586500b6b8cd7bc96a532682dd2332beaea4c64f84d2f12c6a35db7eabdb3a0" + "ece0e2780f97f22ec18e227f594f7c3ad39f29775d0ca57b276d30725c8fb8449412d3178a" + "62ef1f520944534ed04504609f7307a1a0bb159e1354490228ba55942acc2ee83ee9f1ee38" + "78d4beab5a15c69954e01a3aa09b75391a9b2a86af75e5cb1c7523ff0481c1021858c5574f" + "aa7a97e734f35dcda086b51d44990669ae2afafa900621bb8406b719bd046110bd1df7fbf8" + "e3af745eb90100000100000000000000001010000000000200800000400100000000004003" + "1004410040000801000000000000000000000000010101100000000c840000200000008000" + "00000002040000000804000880000000800060000004000000804000000000000202000040" + "0040000000004c000050000000000400000808101200002000010000000000914000000105" + "04000000000001000000000002000160000800124000000202100824000200000008000090" + "0000004400a000100000000c44000002000304800400000000000100800000002000000000" + "0000200002100020004010c080000000000020000400804410800004001400004020003800" + "000000008949c83858118aabcd098344616e8367c280831c22108462d5f4038fce018c4952" + "49532d35383430366530868fdb9d0d722c840375f1440380b8500460f02ae827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000c8c739826426250fde203394" + "7f38ab637a6a1332f340400893f83af1cbbf640a08f4d562afa709170ba6a159" + ), + ( + "419586500b6b8cd7bc96a532682dd2332beaea4c64f84d2f12c6a35db7eabdb3", + "f90248a02279a1997f0166396ab42308697971e63980496907fc697d258dfe4d71bf7962a0" + "e323c944ad47b8f9070689fc5910070fa403dca1025867b4534ef8df21410b5c9412d3178a" + "62ef1f520944534ed04504609f7307a1a080fd68023db7651a36a98b6eae89cb0d37e7f05a" + "971027e98fd23c6ccda13af7a0551991ef25a7ecbb43bdf4afc8d82df522b249d4c8c2b0be" + "21f4f5135c39bf6ca00f612febfff66301e823a23638de3928b3da8aca78848c26a83c4587" + "9aade4cab90100000000000000000000000200001000080200000000000100000800004001" + "1004011040000800000000000000000000000000010501100000200c041001200081008000" + "0000000216000000080400008000000080006000000c0002008040000040400002030000c0" + "0000000000804c002010000008000400000808101000002000000000000000004008000105" + "02000000000001000020000002000140500800124000004002100824020200200008000010" + "2002004400a000100001000c40000002000304800400000080010100000000002000110000" + "0200208002100830004010c080000000000000000400904490800200001400004020000080" + "000000008949f78f1a0dbc6c12338344616d8367c280831079328462d5f3ad8fce018c4952" + "49532d353834303665308650733b23a7dd84037ee4300180b8500400a020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000820f3fbcdb52a2825b13a52f" + "0cdca5c81fe44aac42c22ddb98fec0ed4c5a3ea0def3d562afa70917267c2bd1" + ), + ( + "2279a1997f0166396ab42308697971e63980496907fc697d258dfe4d71bf7962", + "f90248a0dcdc2137d3561152d8824478376eb99f4d3fc1562de87df7ea9d3128482d7042a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda057ef5afba7d1734547fa5408aa758c5c53aeab85" + "021c4c2644bbd7456f0dc731a09d86bb6d8da027f624f0d63a7803e82df4886731c911d1e8" + "b977f117e4dd5a4da04e88f490bdacbfb1b0715e101b37b5853fea2cc488dcc3f655c5953b" + "6d79e929b90100000000000000000004001010000000000000800000400000000000000000" + "00000000000000010000000000000000000000000000800000000008000000000000000000" + "00000000000000000000000800000000000000000000000000000000000000000000000000" + "00000000000000000000000800000000001000000200000000010000000000800000000000" + "00000000000000000000000000000020000000000000000200100020000000000000000080" + "00000000008000100000000000000000000100000000000000000000800000002000020000" + "00002000201000000000000000000000000020000000800000000008020000000000000001" + "000000008949c85690bb58ffe94c8344616c8367c28083015fcd8462d5f3a48fce018c4952" + "49532d62613031656132860575a73ec00c840387ee408080b8500000a020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000009836cf12f3a16124f33e623c" + "60aa49d10b0c7a6d7379454850073db7b231c0f1a7f3d562afa70917476d7216" + ), + ( + "dcdc2137d3561152d8824478376eb99f4d3fc1562de87df7ea9d3128482d7042", + "f90248a07bf8941aeb5fecc8c10bd5134f8c593e7c97550c29a20268928998fb68363b26a0" + "ce4330c93830a27dff33f7d329982ef711cb9b46c4c497df7a2e79c3094d91c1948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0f7612bfe5181ea729f2ce204eadadee6fd1ef219" + "378a9745157baec056090386a0a0cb348c39fbd48491a3bfe0587dbdfdcce72c846864514d" + "99abed86779f1db8a04604fc378a132d24991d35e827320f8aabd83c3b63c7185ca36749c9" + "ba41da27b90100002000000000000004001010880000000200000000000000000000000001" + "0004010040000881000000000000000000000000010101100000000c840004000000008000" + "000000020000000008040000a0000000800040000004000000804000000000000202000040" + "00400000020048000010000000000400000808101000006000400000000000010000800105" + "05000204000001000010080002004160000000104000020200100824000200010000002090" + "0000004000a0001c0000000c40000000000304800400000000000100800000002000000000" + "1000200022100020404000408000000000002000000180641080000c009402004020002000" + "000000008949f7ad661b6a8bc7e08344616b8367c280830bf1278462d5f38f8fce018c4952" + "49532d35383430366530862ee72ba3e80f840387d71c0180b85000e09229e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000002e49b019db238cdfb0497b4" + "50872535bbad4d05a0614e5af52f073e6d1ee6b69ff3d562afa7091778e8610f" + ), + ( + "7bf8941aeb5fecc8c10bd5134f8c593e7c97550c29a20268928998fb68363b26", + "f90248a006c491c47aacf7d80de9f49163d3429fc639fff4d7818f061325796da1f20961a0" + "4768f9c97f2f639c0547f39beb1cfca00d4732e3e8da5639e8a99fe1567d8e579412d3178a" + "62ef1f520944534ed04504609f7307a1a00cf65c0af6a841d8cb25da06c14211df07453807" + "b925553b9c5319c2215d122da08e70f0c757b88ab6427e39a3a4c458286dff8c208326c088" + "f47808a4d800a535a028c42aa9de2395f7fc12625e41c857ed47dd8c83f1da6f3aad1959c1" + "52ba5448b90100000000000400000004000000000000080200000000000000000000004001" + "1004010040000800000000000000000000000000010101100000000c040000200000008000" + "00008002040000000804000080000000800060000004000200c04000000000000202000440" + "0000000000004c000010010000000400000808101000002000000000000000004000000105" + "00200000000001000000000002000144080800124000000002100824000200000008000010" + "0000004400a200100000000c40000002008304800400000000000100000000002000010000" + "0000200022100820004010c080000000080000000400805410800208001400004020000000" + "00000000894a27229af97ada68228344616a8367c28083155f578462d5f3698fce018c4952" + "49532d35383430366530865f15a60193cf84037ee4300280b85004407734e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000c476a03dd6a337319274b0bb" + "0c6054c776f7ffb2927c7bef2962bb9eb4f3d42978f3d562afa7091726cce1a7" + ), + ( + "06c491c47aacf7d80de9f49163d3429fc639fff4d7818f061325796da1f20961", + "f90248a0fc3511fd151b1d8afec2ba9677a3eca2c997972d041bdc768833d63af05cf1dba0" + "f3f4377ecc9ec27483a33f8695b5db9886dc4b42a9c83f83b262563c8b5bbd2a941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0f67d7bfe54f89e5dc1326d25045bdcd3e3f79dc2" + "cb2ad5e6a15dd2629682903da0366727a3724986f9666418a972081882f60b61165e73f801" + "fee5157c98154f08a049ab9cbf3917c7c29579054e857d7659636a168fa3bf90e7f52f0158" + "dab3e79fb90100000000000800000004001010000000000300800000400000000000004001" + "1004010040000801000000000000000000000000010101100001000c840001200000008000" + "00000002040000000804000880000000800060000004400000804000000000000202000040" + "0040000000004c000010000000000400000808101200002000010000000000814400000105" + "04000000000001000000000002000160100800124000000202100824000200000008000090" + "0002004400a000100000000c40000002000304800400000000000100800000002000000000" + "0000200022104020004010c090000000000020000400804490a0000c001400004020002000" + "00000000894a56b642d25361b0e5834461698367c280831222978462d5f3358fce018c4952" + "49532d62613031656132864d9d15405cd8840387ee400180b85000600020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000d045034d6777d865bc833870" + "431c0d748da4530575fd84831d95bdab9fa41c5f4df3d562afa7091714c810e5" + ), + ( + "fc3511fd151b1d8afec2ba9677a3eca2c997972d041bdc768833d63af05cf1db", + "f90248a0a4dd8ba78d29a4b33c5c3f3341fdf8bc5c2a66f247d963e5ea9a879da7354cf7a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda04f1a13aba702f1d23e79d866cfb8c045ce97f6f4" + "4d3bbd0f36b774c3bcc6fc9fa0b5ca4609a6c33df39f58bf4ca7863e5d86d659e467d7f54c" + "4ea72cb0e4511b80a0173ac7d1bef7bca952c6bdbe21eede86e3d119c1ac6eb32ebfb5fff3" + "ebe7790fb90100000000000000400000000000000000000000200000000000000000000000" + "00000010000000000000000000010000000000010108000000000008000801000000000000" + "00000000000000000000004000000000000000400000000000000000000200000000200000" + "00000000008000000000000000000000010000000000000000000000800100000000000000" + "00000000000000000000000000000100400000000000000000100020020000000000000000" + "00020000000000100800000000000000010140002000000000000000000000802000000000" + "00002000001000000000000080000000000000000000800090080000000000000000000000" + "00000000894a8668712f3e6aeb15834461688367c28083090bff8462d5f2de8fce018c4952" + "49532d6261303165613286232381e02d20840387ee408080b85000008020e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000024ac051a3df1aec21939e31b" + "7b58e3b671477e08990c535a66d6708cacca42ba2ff3d562afa709171efb7450" + ), + ( + "a4dd8ba78d29a4b33c5c3f3341fdf8bc5c2a66f247d963e5ea9a879da7354cf7", + "f90248a0a8ae958ee51657423c4d4f688dcee5e2a74caff077f215fbe9aa3e1d17bbb70ca0" + "2d6707f2658487f89a81f9e539aacfe888f65498503e5a6be90e83984ab6f210941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0b4395df4f7646e93fd8f4a3554f09424869db543" + "448801ea33d4ed176112cf87a027c9f38b7244121271b3754ed3e368098a14da662d7faf6c" + "942654301d9765d3a064034778dd223cf4f2846ef5c0328a2e3742e7f5e6c223b37b6f8c57" + "838f000ab90100000000000000000000001010000000000200800000400000000000000000" + "00000000400000010000000000000020000000000000010000000008800000000000000000" + "00000000000000000000200800000000000000000000000200000040000000000000000000" + "00400000000000000000000000000000000000000200000000010000000000810000000000" + "04000000000000020000000000000020000000000000002200100020000000000000000080" + "00000800008000100000000000000000000104002000000000000000800000002000010000" + "00002000001080000000000000000000000020000000800000000204000000000020002000" + "00000200894a56d4b5d994725001834461678367c2808305081f8462d5f2d28fce018c4952" + "49532d6261303165613286138b295f0920840387ee400180b8500000ff3fe827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000030d61e4483e3534ce2560f0b" + "4a921d368aadbf51f2d7c4e968e41ea0c940fea6e1f2d562afa709178dc4b229" + ), + ( + "a8ae958ee51657423c4d4f688dcee5e2a74caff077f215fbe9aa3e1d17bbb70c", + "f9024aa06d13669b7776e49baf7719d8ece68788fd8635f57cb07a9b3b57429a2fa8b16ea0" + "98bdb35ebda3d08bad1f1ed81a51b50c84d0c7077f1cbb787b40b228301eca269432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a07a8b33f03e10c22dea18be7ea4747956016c1345" + "0ed5c515b115cff4f1b2f922a0ca37b61e8f7e243aa83f25e06b97c4054ec8bb8ec172f764" + "eefd5c1fcfbb4f3ca046d8466a0a7a65a553ed3303057e9c16a8b8ae131e822e3fa225c249" + "6679c3c3b90100000000000000000004000000000000080000000000000000000000000000" + "00000010000000000000000000000000000000000000000000000008000000000000000000" + "00008000000000000000000000000000000000000000000200400000000000000000000000" + "00000000008000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000480000000000000000100020000000000000000000" + "00000000000200100000000000000000000100000000000000000000000000002000010000" + "00002000201000000000000000000000000000000000801000000208000000000000000000" + "00000000894a8686f7bfd1c55dad834461668367c28083010ea08462d5f2ae91d0018e4952" + "49532d33313537353561623586041b20dc0c00840387ee400180b8500480a82ce827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000331c66455122298968fe" + "cec9f728c7cc7a2700926126e991e14685a2d5f7c4a6c3f2d562afa7091757a12c0f" + ), + ( + "6d13669b7776e49baf7719d8ece68788fd8635f57cb07a9b3b57429a2fa8b16e", + "f90248a0b2769096cafa16eb80b64965427c77501070ce6ef985f8d903231ebff5082f00a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0298fb3af1592e81fc74bf7d538e9ca08efdd02e7" + "bdcc9a12cc335d6d8b69915ca0e5c84cb588aa1b986205148d5a992dfafc6fd7c4a1ac781f" + "7ba247506f949a4aa0b7c3998bb1b0c3e42dea7a210abceb55651bff8198626fefed7d4d14" + "912b044cb90100000000000000000000001010000000000000800000400000000000000000" + "20000010000000010002010000000000000000000100000800000008000001000000000000" + "00000001000000000000000800000000000000000000000000000000000000000000000000" + "00000000008000000000000000000000000000000200000000010000402000800000000000" + "00000000100000000001000000000120400000000000000200100020000000000080000080" + "00020000008800100800000000000000000100000000020000000000800000802000000000" + "00002000001000000100000000000000000020000000800090000000000000000000000000" + "00000000894ab657d3cc7d9adf83834461658367c2808302eea38462d5f2888fce018c4952" + "49532d62613031656132860bed37e6df40840387ee408080b85000e02d2ee827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000541287aedb01018b59d90e2e" + "a592282e32ad420747ec52f75ba3b5ad835907929af2d562afa709176d8d70b1" + ), + ( + "b2769096cafa16eb80b64965427c77501070ce6ef985f8d903231ebff5082f00", + "f90248a0ca4aee0ecaf0d7144ee8e1e8b26afdb1ec4045d618bc4cda43de73d59a52d3a5a0" + "00bf0ba497a14702b5a1043997d15c140d300592d575761fc0ab1bd7595d5c22941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0127939c4e4969af24ead0b8efe22f7ee412013e6" + "8d4978a2a993fd6667c1dbbaa046d4041b5a233309f6fe87528b26826baba3aa2f6abe8f4d" + "e4b2db0c7fb58996a0266892a6448f374064268ff83a25efecb7d571e304ea990d1e1fa211" + "b92c93a8b90100000000000000000000001010000000000200800000400040000000000000" + "20000010400000010002000010000000000000080000010000000008800101000000000000" + "00000000000000000000000800000000000000000000000200000000000000000000000000" + "00400000008200000000000020008000000000000200000008010000400000810000000000" + "04000000000000000001000000000020400000000000000200100020000020000000000080" + "00020000008000108800000000000000000104000000020000000000800000002000010000" + "00002000001000000000000000040000000020010000800080000204000000000020002000" + "00000000894ae6475da20403d7bb834461648367c2808304a8898462d5f2458fce018c4952" + "49532d626130316561328612a18677e900840387ee400380b85000800020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000007a081c9ca3b46333a01b4bd9" + "6d2e589117d1bb972d2a1354bd9d62bbaab79a2e7cf2d562afa709172e2e6fc5" + ), + ( + "ca4aee0ecaf0d7144ee8e1e8b26afdb1ec4045d618bc4cda43de73d59a52d3a5", + "f9023fa03a5177a5bb1e83a497507705cef978e6930aa91fbbbe080270648dea91b6ca7ea0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0ca421fb228e4bcc6081dcf5d85b90868b08c8021" + "6b2d6a395ded480d40e0b540a0eddd0815f92fd27e8e1658e8fb44d37bfaa6355513737b4b" + "d7890936b696180ca03907679c3f617c5eed914f39c8877b64e110931275dd9ae2a8bb8fe1" + "12e29b61b90100000000000000000004000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000008000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000100020000000000000000000" + "00000000000000100000000000000000000100000000000000000000000000002000000000" + "00002000201000000000000000000000000000000000800000000008000000000000000000" + "00000000894ab6766dff7500a41f834461638367c280808462d5f2198fce018c495249532d" + "6261303165613280840387ee408080b85000c01020e827459e56aa848494122a884f09593a" + "1acd62d5b716050000000000000000009535a602f620016c48fc4bf1bc6acdf9e70a0b3598" + "68bfa5d89b0814baabffa33ef2d562afa70917142f16de" + ), + ( + "3a5177a5bb1e83a497507705cef978e6930aa91fbbbe080270648dea91b6ca7e", + "f90248a07e567de263458645575583edfa3e2e44c967e3dec4d469aa978562bb4020f374a0" + "b630e726896d89a33714eac74355cbaf5f3786dc574b9efb8d1cb3cf08a7cb479431fe561e" + "b2c628cd32ec52573d7c4b7e4c278bfaa00c2dda9f6cabd794f2ae58f39371926933333477" + "3e6cb04d530ca35ce8820cbea0109b2282a3a3abe6e07ac806dba077d8b4b293224f1ec93b" + "f010774879690556a01f08692ee60860292e6f3c83b13116b100c5b98ef4fa4d227621d1d1" + "5a7377c4b90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000100000000000008000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00000000000000100000000000000000000100000000000000000000000000002000000000" + "00002000001000000000000000000000000000000000800010000000000000000000000000" + "00000000894a86c405067b1842ad834461628367c28083010cf88462d5f2128fce018c4952" + "49532d62613031656132860414b202c900840387ee400280b85004008020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000004215d98d38280cc69c8cfb72" + "24a178bd52bc1f87e9de690bdb2e634afb1631b90ef2d562afa709176f964d93" + ), + ( + "7e567de263458645575583edfa3e2e44c967e3dec4d469aa978562bb4020f374", + "f90248a01dadd7e2f5ab7920ec0638f36c2deacc5c8e56e77d270b7cf6aafa05df3e2322a0" + "6d0ad5ecf5a6afc3e547b642b4e1bb34e0cfc027e7efd10888787fb74d20a83d941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda04373cfc4cce3e2760d7ebef55feb810792761b59" + "b27cef4b4ca8a7e0764e6848a0adcf1c127974bbcb1d758638e7a2d5e03f0ccdd2c4b21370" + "06eca88900ba91baa0057737e5c70f9a3e8b84b6bedbb9c2cf9c71b565b9973d36ece7494c" + "0d3fba6ab90100000000000000000000001010000000080200000000000000000000000000" + "00000000400010010000000000000000000000000100010000000208800001000000000000" + "00008000000000000000000000000000000000000000000000400000000000000000000000" + "00400000000000000000000000000000000000000000000000000000000000010000400000" + "04000000000000000000000000000120080000000000000200100220000000000000000088" + "00020000008200100000000000000000000104000000000000000000800000002000000000" + "00002000001000000000100000000000000020000000801090000004000000000020002000" + "00000000894a57300f3a2ce70af8834461618367c2808304273c8462d5f1f78fce018c4952" + "49532d62613031656132861021af2b8c80840387ee400180b8500040b831e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000003264be3336f6f567763461c8" + "04fa5ccbb0ef709d7ab48d58407981b07a811e8901f2d562afa709176165624f" + ), + ( + "1dadd7e2f5ab7920ec0638f36c2deacc5c8e56e77d270b7cf6aafa05df3e2322", + "f90247a0e06c753e3f1e90ffda8de84bcbd437e41cc3d3c9451bbf41b7002e0c164f0e65a0" + "698f07f7391167891efad0ef086a4cf183570396827aac90181b71791b4d5b57948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a09f4e1e63136dbbfe1ac94129fe25e3f2a874b2d0" + "2a2a37ea4821ba3e1c4aa880a0eab4cb167c21ba833fa7b4a950fb8e233f8dc51d2c9abf3f" + "564cc883bb53cdd6a02e5557e720cdcd090c57a91aac2876e0a05a33c7440467102686d4cd" + "7cf4f644b90100000000000000000000001110000000000000800000400000000000000000" + "00000010000001010000000000000000000000000000000000000048000000000000000000" + "00000000000000000000000800000000000000000000000000000000000000000000000000" + "00000000008000000000000000000000000000000200000000010000000000800000000000" + "00000000000000000000000000000020400000000000000200100020000000000000000080" + "00000000008000100000000000100000000100000000000000000000800000002000000000" + "00002000801000000000000000000000000020000000800000000000100000000000000000" + "00000000894a86e28bbc911af341834461608367c28082dee48462d5f1d88fce018c495249" + "532d35383430366530860361b9700f80840387ee400180b85000004020e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000ffaa37fa2cf23a7b1b301149a5" + "3f94d7aa52d9ca37c07cb8f18c1cb578adb87bddf1d562afa709174f8ca416" + ), + ( + "e06c753e3f1e90ffda8de84bcbd437e41cc3d3c9451bbf41b7002e0c164f0e65", + "f90248a0b215bd34e5afeaf96616c678910b3474ae8f5f783958e91e4a0558784f1929cfa0" + "478b108f87b5c56c14bab2d506fd8d768d10214d98a84e5154eb80902996ab95941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda028dcc8d8101c123080280aba16c60704315c6a4d" + "171338df81f7faf5a454d9f5a00e60dc41a7a764bd595eabdc9b6e0e1b07b70755c8d10568" + "cde579c9b82e8cd7a0c8fde12c404a4fc0c72baca69ddc0006364f3a766aff5878823eaaeb" + "2f06cd94b90100000000000400000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000040000000000000000000000000000000000000000000000000000000000000400" + "00000000000000000000010000000000000000000000000000000000000000000000000000" + "00200000000000000000000000000004000000000000000000000000000000000000000000" + "00000000000000000000000000000000008000000000000000000000000000000000000000" + "00000000000008000000000000000000080000000000000000000000000000000000000000" + "00000000894a574e8273518a9a8d8344615f8367c28083038b2c8462d5f1c28fce018c4952" + "49532d62613031656132861905c65841fc840387ee400180b85000606e26e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000001d886029e68a973a89fc3b28" + "11b5761101191c31df458eabd00ca607ed735772c7f1d562afa7091711d6aef2" + ), + ( + "b215bd34e5afeaf96616c678910b3474ae8f5f783958e91e4a0558784f1929cf", + "f90247a0462992f6abc6c5daace4d474a30868aaf11851792c7597aa3cc8fb3cabf47a20a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a03a07e72473479ae633c75300d79e4b3b1c249768" + "8ce554ed39ced1ebb77c6031a08915dcada5975959758d415c15023046539445cc4aa019d2" + "4ec590844d81e9a7a095531dbc9d88846a916b5a57b8bd6f3671fa1c5a6a094c8d753ad1ff" + "fda2040db90100000000000000000000001010000000000020800000400000000000000000" + "00000010000000010000000000000000000000000000000000000008000000000000000000" + "00000000000000000040000800000000000000000000000000000000000000000000000000" + "00000000008000000000002000000000000000000200000000010000000000800000000000" + "00000000000000000000000000000020400000000000001200100020000000000040000080" + "00000000008000100000000000000000000100000000000000000000800000002000000000" + "00002000001000000000000000000000800020000000800000000000000000000000000000" + "00000000894a27d8d8f2b634b6428344615e8367c28082dee48462d5f1b28fce018c495249" + "532d35383430366530860361a345ed4c840387ee408080b85000000020e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000e4a722683b7bbd31d1e9535032" + "37539225c786b48a50d7fe179baaa66b14fa5abff1d562afa7091728fb34d3" + ), + ( + "462992f6abc6c5daace4d474a30868aaf11851792c7597aa3cc8fb3cabf47a20", + "f9023fa048d64e7425c6cc7274e5706641c2f52a8a3fc2751dc781a569b9f226bde57057a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0c532f01c7a1c67c01b3fe6c7f62d5cf48770659d" + "1c8ca3b2b3d697e24e1fff4ba02b5eea4177b7a99f33e3b08a9c9faa5ade4b1f05637e9c9e" + "5e849abce93b9450a0597ffb3e7ac9626eed99bf3d50095e1a25c5d37e46b42bd2812ba08d" + "07509b88b90100000000000000000000000000000000000000000000000000000000000000" + "00000010000000000000000000000000000000000100000000000008000001000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000008000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100400000000000000000100020000000000000000000" + "00020000000000100000000000000000000100000000000000000000000000002000010000" + "00002000001000000000000000000000000000000000800090000200000000000000000000" + "00000000894a576cf5b8ef1fabce8344615d8367c280808462d5f19c8fce018c495249532d" + "3538343036653080840387d71c8080b85000006a21e827459e56aa848494122a884f09593a" + "1acd62d5b716050000000000000000000d313a4b958ec3698f685aed2d51fa887d4fb00e71" + "3d749193b63d3459f8ae17b8f1d562afa7091734812466" + ), + ( + "48d64e7425c6cc7274e5706641c2f52a8a3fc2751dc781a569b9f226bde57057", + "f90247a00265ab37b0e19e12241b729221a96cd0d757b554cfc4a93b8930967c62a5e27ca0" + "57e49a748a9d3e279214e00dcc713042fa15975f0a7fbd3864e8c4e90a0964079412d3178a" + "62ef1f520944534ed04504609f7307a1a0cc8cd06c48764bd1d65ac7759d0dc14471a0803b" + "54a36bc45e688460ed8ef0e8a07b5871b20ec47e25f051544c8eaa4e201be60dd98877db94" + "49ef314c4e56a90ea0fb59248dd05343c94e7e432597718b195fd1fe180936c176a2850367" + "5296bb48b90100000000000000000004001010000000000000000000000000000000000000" + "00000000000000010000000000000000000000000100000000000008800000000000000000" + "00000000000000000000000000000008000000000000000200000000000000000000000000" + "00400000000000000000000000080000000000000000000000000000000000010000000000" + "04000000000000000000000000000120000000000100000200100020000000000000000080" + "00010000008000100000000000000000000100000000000000000000800000002000010000" + "0000200020102000000000000000000000002000000080001002020c000000000000002000" + "00000000894a871f994e3fec6c138344615c8367c28082dee48462d5f18b8fce018c495249" + "532d35383430366530860361a345ed4c84037ee4300180b85004004020e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000e347a4d9c676e5f94acd3b0db1" + "88fef2aad7e41e98b8de4bbc9d25d0c77b711f8cf1d562afa7091737b938ba" + ), + ( + "0265ab37b0e19e12241b729221a96cd0d757b554cfc4a93b8930967c62a5e27c", + "f90247a02b31845cdd4f9bbe7feebb0f7b96a71df16a97f4dd054b8f8a364473f4e297b5a0" + "341e4878f4a764cda31cf5d747864a9224b77dd8a9f123e9a20582ed8c0217ac9431fe561e" + "b2c628cd32ec52573d7c4b7e4c278bfaa0713150cef998a001e61dfe12f19f39e3a4a4928a" + "5853f22f6a89c32077691f37a0492430df6294ae76d201d4b4405a61cdcaf4d82252986544" + "de0187a581652fe9a0b31e8bed7e4369fa5402c44b6ff6b6922f45f0bd106d11270823653c" + "68eb7761b90100000000000000000000001010000000000000800000400000000000000000" + "00000000008000010000000000000000008000000000000000000000000000000000000000" + "00000000000000000000000800000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000200000000010000008000800000040000" + "00000000000000000000000000000020000000000000000200000000000000000200000080" + "00000000008000000000000000000000000000000000000000000000800000000000000000" + "00000000000000000000000000000000000020000000000010000000000000000000000000" + "00000000894ab6f0d748abdf8a808344615b8367c28082e22d8462d5f16a8fce018c495249" + "532d6261303165613286036e7bf25160840387ee400380b85004000020e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000bc394588342191639cba576dcd" + "f3961dd246264bab77f0fadeaaa641362f14966bf1d562afa7091791e5666c" + ), + ( + "2b31845cdd4f9bbe7feebb0f7b96a71df16a97f4dd054b8f8a364473f4e297b5", + "f90248a0c9803f0ee5d23758ca430f25865e6c61810088c4428ed73527c932af1447d774a0" + "c65cc4c99432d9d8ea113c3ca21239608fe459f46915c87dfc2f94a38d19f0ee941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda06a722dfcfc17fb2050a7aab6c15b13e8cf7c7f03" + "f42000f5f5506b36e26f4962a09f48c7570431ee9bca2add3df6dbaa15bffe0501382916c5" + "b8a8e6e6dbefd572a0351eb27b8a2593c0c12233cc313f77e775d0ace7a358023c98f63204" + "214ea712b90100000000000000000000001010000000000200000000000000000000000000" + "00000000400000010000000000000000000000000000010000000000800000000000000000" + "00000000000000000000000000000000000000018000000000000000000000000000000008" + "00400000000000000000000000000000001000000000000000000000000000010000000000" + "04000000000000000000000000000020000000000000000200000000000000000000000080" + "01000000008008000000000000000000000004000000000000000000800000000000000000" + "00000000000000000000000000000000000020000000000000000004000000000020002000" + "00000000894ae6e0c34ac74057848344615a8367c28083031c658462d5f1308fce018c4952" + "49532d62613031656132860c1541fb3260840387ee400180b85000008020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000391d5ec8f02ad7524e20c97a" + "e3050d9b35047a88fe9e86afaea7fab72e7f67ed4df1d562afa7091784411019" + ), + ( + "c9803f0ee5d23758ca430f25865e6c61810088c4428ed73527c932af1447d774", + "f90247a068ee3a5bdc566aa6dfb6c08d5e051ca2858fe7a3300f656273ba74b228bc83a3a0" + "6e7c62a9d5e92429cacaf65d44712d2cd4a92f370474efedaa75e1ddba5ec602941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda046c7b0b03503dcc724d5c1143d764ef78ff606cc" + "ada13de898651a77888f0e04a0db8552dc358e4b5bc34fb2db9cbd72cb0b6f97cbdbd7d59d" + "b3f45757a6dde317a012adc459a0553d09c21d84fcd2bbe5c84e5bf6c08b7fb12d121736c6" + "1d968012b90100000000000000000000001010000000000000800000400000000000000000" + "00000010000000010000000000000000000000000000000000000208000000000000000000" + "00000000000000000000000800000000040000008000000000000000000000000000000000" + "00000000008000000000000000000000000000000200000000010000000000800000000000" + "00000000000000000000000000000020400040000000000200100020000000000000000080" + "01000000008008100000000000000000000100000000000000000000800000002000000000" + "00002000001000000000000000000000000020000000800000000000000000000000000000" + "00000000894b16ef7103bf68ec96834461598367c28082dee48462d5f0f88fce018c495249" + "532d62613031656132860361b9700f80840387ee400280b85000000020e827459e56aa8484" + "94122a884f09593a1acd62d5b716050000000000000000004f971790ca614ad5d5c24b012f" + "1f2a51e005b5048851e4c7b7f7403766b3a9fa10f1d562afa709172462c436" + ), + ( + "68ee3a5bdc566aa6dfb6c08d5e051ca2858fe7a3300f656273ba74b228bc83a3", + "f90248a0e8043da0696c7fcd7294630b247712ecff7369478b1c75bc945cdcd14e482e51a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda09481f4501bcb0f2a14dff709a1a76aa7f4edf9a5" + "39e9ee41c6a01815051db729a03e901e4bf0c092237c0d5af6a781a8acb247e78d164acef2" + "6b29cf319ada6c65a05bf720500ccac6fdd055ac58c725d7079438ee5d834a5405330f89dc" + "6081c98db90100000000000000000000000000000000000200000000000000000000000000" + "00000000400000000000000000000000000000000100010000000008000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00000000008000100000000000000000000104000000000000000000000000002000000000" + "00002000001000000000000000000000000000000000800010000000000000000020000000" + "00000000894ae6ff715f07b5e8ce834461588367c28083023a058462d5f0e38fce018c4952" + "49532d626130316561328608a5fff25e60840387ee408080b85000000020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000002eb9fa625424375545a9ed67" + "836479596cb195663602056e8a3804699a8ffb75f4f0d562afa7091725279194" + ), + ( + "e8043da0696c7fcd7294630b247712ecff7369478b1c75bc945cdcd14e482e51", + "f90241a065351fab2d3c7bd800c8d5e8287dc5193b88264369d00879674f0b6480815518a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a059d9ac0f7b91a21aabdbb2e9fca4579e399a1282" + "ab0a2bb114d6ccf6a2357f36a074fa7a5858a2f6bc71573a214403f3e24eb7f0118f369995" + "1e74be30c9ece079a06c6115fead722c1812c44e82c3d27463cd50be0c47fe366a1bc4fa65" + "cc381ec9b90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000008000000000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000100020000000000000000000" + "00000000000000100000000000000000000100000000000000000000000000002000010000" + "00002000001000000000000000000000000000000000800000000200000000000000000000" + "00000000894b170e32c73548a6a9834461578367c280808462d5f0cf91d0018e495249532d" + "33313537353561623580840387ee408080b85004006020e827459e56aa848494122a884f09" + "593a1acd62d5b716050000000000000000009ead152f02a97a174891164c29a9766988e471" + "93c72f4c2f4bd5d1b86af0525fd8f0d562afa7091759934d79" + ), + ( + "65351fab2d3c7bd800c8d5e8287dc5193b88264369d00879674f0b6480815518", + "f90248a0189bade9a341bf74bb132bc4508d38dfaac0db58f3ef6b068cbb56253e8008bba0" + "94f20d91f96569e5a5f2547059aaf069dcefd157c23681dc787d79668e2a1bb79431fe561e" + "b2c628cd32ec52573d7c4b7e4c278bfaa09947a8cbc887dfd9382aeb81d6bb0b3d6fdb1454" + "835e7daece9587584734bc46a0a51c73ff55ff74b1403b1ca44b0dde1bdcb65ec51af74767" + "8674e2d16d16a235a0f29d72b0f8b4e09072b2aef04220ce2d459c68a84b112c54bb8c8f53" + "093b4867b90100000000000000000000001010000000000200000000000000000000000000" + "00000000400000010000000000000000000000000100010000000008808000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00400000000000000000000000000000000001000000000000000000000000010000000000" + "04000000000000000000000000000120000000000000000200300020000000000000000080" + "0000000000800010000000000000000000010400000000000000000080000000a000000000" + "00002800001000000000000000000000000020000000800010000004000000000020002000" + "00000000894b473bc9aeaf527508834461568367c28083031c038462d5f0bf8fce018c4952" + "49532d62613031656132860c13762f6041840387ee400280b85004000020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000152e8d98f00eac45b17dfde5" + "9294a87a56d8bec8cdd2a122fe2fb6fea73d5fc7bcf0d562afa709177402ed49" + ), + ( + "189bade9a341bf74bb132bc4508d38dfaac0db58f3ef6b068cbb56253e8008bb", + "f90248a0d05df11caefda0c1a1ded8d3e76305615174819b46938d1d852704e7520ec9d9a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda03bfbb87343945e23cf652000eff93f9e1e2b4a24" + "caa9e570994ec5b8d1214812a0d8e8ba9eb55d1fa395d1060cc88999a197abc05c6e08999b" + "64d897cba7068066a085e5699abc03232ce4b3b17648d831d47b4378aca02602c6d280eb9b" + "dbe255f1b90100000000000000000000000000000000000000000000000000000000000000" + "20000010000000000002000000000000000000000100000000000008000001000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000008000000000000000000000000000000000000000000000402000000000000000" + "00000000100000000001000000000100400000000000000000100020000000000080000000" + "00020000000000100800000000000000000100000000020000000000000000002000010000" + "00002000001000000000000000000000000000000000800090000200000000000000000000" + "00000000894b172cf49744457bc4834461558367c2808301bd778462d5f0aa8fce018c4952" + "49532d6261303165613286074bb68c68c0840387ee408080b8500000a020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000a51756b033dc0568fd6f21f0" + "1c795e45f88942d86a1670b4847a9490f3468e70b9f0d562afa709172e16adc7" + ), + ( + "d05df11caefda0c1a1ded8d3e76305615174819b46938d1d852704e7520ec9d9", + "f90248a0e21c83ba3e84c30ef4eac33340fe2367f36ed0cd9dc7835252e615f374709f39a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0069f5452bd5cade82b1cd54f43c1b7b1005d2d26" + "69af36b0aac3e63f9f1e9e81a0f8e0b6576b241a21b681f1198961e4843464c23acbb702d7" + "bd3dd3f55c8de9faa05e2e139b9bb70c9447f5b04db6e5d0d3ed328d8dd6036f27bd0f1738" + "7f260769b90100000000000400000000001010800400080200800000400000000000000000" + "00000000400000010000000000000000000000000000010400000000800000000000000000" + "00008000040000000000000800000000000100000000000000400001000000000000000400" + "00400000001000000000010000000000000000000200000000010000000000810000000000" + "04200000000000000000000000000024080000000000000200000000000000000080000080" + "0000000000820000000000000000000000a004000000000000000000800000000000000000" + "00000000000008000000000000000000084020000000001000040004000000000030082000" + "00000000894b475a9f3a9cfbdf86834461548367c28083085f8a8462d5f08e8fce018c4952" + "49532d62613031656132862aff4d04cd02840387ee408080b85000401421e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000001bda5b2c8e72380c5264e68c" + "b815aafa1159b3f202e387a832c368108fcffc7f9af0d562afa70917770c7b72" + ), + ( + "e21c83ba3e84c30ef4eac33340fe2367f36ed0cd9dc7835252e615f374709f39", + "f90247a035ec63f45111d81c09ac68842774ff72459b5599065be4f1d36889ee62a63d61a0" + "39a4b82f9caa833de3a6218c5adc0bb5cb751ebf8e8f584316d5d39fd437de07941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda00e6ae1f1658cf195a7dafda82fd1f4e3fdd65650" + "7bbf3ddd96fb57aea6d998d6a0bcbeba78932bc3f70ce4dd37ccd023b2c92db131f1747d18" + "543485c690fe1f43a08a4f0d0740f34bfb96564c867c2f5196a16ca524c032058588c4cfb6" + "ddf41211b90100000000000000000000001010000000000000800000400000000000000000" + "00000000000000010000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000800000000000000000000000002000000000000000000000000" + "00000000000000000000000000000000000000000200000000010000000000800000000000" + "20000000000000000000000000020020000000000000000200000000000000800000000080" + "00000000008000008000000000000000000000000000000000000000800000000000100000" + "00000000000000000000000000000000000020000000000000000000000000000000000000" + "00000000894b77a733326b550bb6834461538367c28082dee48462d5f0308fce018c495249" + "532d62613031656132860361a345ed4c840387ee400280b8500020a723e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000250cc40890bb7b7566a1bbeeec" + "f7b896be8857721b1be7843dd08b313521465e7bf0d562afa709173c5de8af" + ), + ( + "35ec63f45111d81c09ac68842774ff72459b5599065be4f1d36889ee62a63d61", + "f9024aa050ed36eda554e0113d8937bb040b63ffa3feb06d996652357ed60410ee1b85aca0" + "61e02f07fe58673c5bd0663e43e56730dd2afd93c2e5bbb4011e4c3460934c779432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a01a0d1e85fc258ede45856aadda28919d3e86985d" + "997c6b14e351eeaf5f111e57a087af99d6584c1f99b851c7a07d312d9aba32db105913adc7" + "3886ea66746b55eba031777f145955010b6c6bb0a3bdbec8630103324236a4076098a727b8" + "20d47c61b90100000000000000000000021010000000000200000000000000000000000000" + "00000000400000010000000000000000000000000000010000000000800000000000000000" + "00000000080000000000000000000000000000000000000000000000000000000000000000" + "00400000000000000001000000000000000000000000000000000000000000010000000000" + "04000000000000000000000000000020000000000000000200000000000000000000000080" + "00000000008000100000200000000000000004000000000000000040800000000000000000" + "00000000000000000000000000000000000020000000000000000004000000000020002000" + "00000000894b477974d32bdcd050834461528367c280830318ba8462d5f02791d0018e4952" + "49532d333135373535616235860c06b400bfbe840387ee400280b85004a02720e827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000f62b93889cf413feaf49" + "c2b6fd7a853ca27f663061a913d5009c8223109eabf927f0d562afa70917347b088f" + ), + ( + "50ed36eda554e0113d8937bb040b63ffa3feb06d996652357ed60410ee1b85ac", + "f9024aa0a952daa8e4beea6ada5807ea1d3f355e36c67f4aee883de7a925b00eb8f05539a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a0aa5a0e6f68707a4a37cae381451e21720f2a5aad" + "b767b75829e7923f17ea3170a0bbc78f29ff9875bb73d156a9eba1007bc8e1f00b1991f9e9" + "459033a1ed6fcb3aa045cc17525d04f2fc6fa72ad472bc5f4227a56f4798182a59b0576720" + "cd03da85b90100000000000000000200001010000000000000800000400000000000000001" + "00040100000008010000000000000000200000000001001000000004040000300400008000" + "00000008040000040804000880000000800000000004000000004000000004000200200040" + "00000004000140000210000000000000001800100200000004010080000400804000800105" + "00000000000000000008000802000020400804124000000200000805000200000000020090" + "0001024020a000008000000c40000000000200000400000000000010800000000000000000" + "00000000000000000040124100000000000020000000004400000004001500000800010010" + "10000000894b77c61c938a49cc57834461518367c280830b6d478462d5eff991d0018e4952" + "49532d333135373535616235862c60f4473f3e840387d71c8080b8500400ff3fe827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000a15aaf78dd3579e4eb49" + "45cbf146798408e3c1947324b855b47cd4d35df553b41ff0d562afa709174225885d" + ), + ( + "a952daa8e4beea6ada5807ea1d3f355e36c67f4aee883de7a925b00eb8f05539", + "f9023fa01652cbc1655b368b1f0333036b6e486fa2aa3378c5b9838d75b7b1f5ca398ae7a0" + "3528dddda53411de720eebf646e3ac8a82e68568980c1478697617b83d9845939412d3178a" + "62ef1f520944534ed04504609f7307a1a091fbfc5b2874ddb204d38e7ba89e540c0927e0ec" + "9a95d1166bc6f89fa4cc0ff9a07fe63bfe8205fd680b6994175d09ef4579a9023c894d95f6" + "fdfbe2b712bdc27ca066cfdb731f620cd96e2c2cb0f7d3c3a2879c29b40014aa27efbbf3cf" + "9cd3b0f6b90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000894ba831c18a4930f5ea834461508367c280808462d5efcd8fce018c495249532d" + "353834303665308084037ee4300180b85004e0ff2fe827459e56aa848494122a884f09593a" + "1acd62d5b71605000000000000000000a95539de02d3969ec8d2e8acafdced84c6fe911166" + "90097d5d4c53652c5469b9dbefd562afa70917d6c864c1" + ), + ( + "1652cbc1655b368b1f0333036b6e486fa2aa3378c5b9838d75b7b1f5ca398ae7", + "f90248a0328e077563e28b011e605cd17fcadb70960ecd9fd53e3c025bacd45d6cb336f5a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a091b87a51a3d5cf2b9f92a7caac831b1e71738faa" + "f7d7bd110fb8df09ca2a6a98a0ee4724a5eafaa438a931da97bc3d0361d3e5414cee7f4031" + "8d96247a483ceee6a037d6b10d2d034577cb656e2fc2454399f0fc8fb0f6024875377f67f2" + "1997c67fb90100000000000800000004001010000000000200800000610000000000000000" + "00000000400000010000000000001000000000000000010000000008800000000000000000" + "02000000000000000000000800000200000000000000000000000000000000000000020000" + "00400001000000000000000000000000000000000200000000010000000000810000000000" + "04000000000000000000000000000020000000000000000200100020000000008000000080" + "00000000008000100000000000000000000104000000000000000000800000002000000008" + "0800200020100200000000000000000000002000000080000000000c000000000020002000" + "00000000894b77e506015295b4d38344614f8367c280830504788462d5efbc8fce018c4952" + "49532d3538343036653086137cf9c25900840387ee408080b85000e0ff3fe827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000acd4eae93d4c7e18eb2b21ab" + "20e583bf3951fef018e95933f14c273b3143a267cbefd562afa70917470a67c2" + ), + ( + "328e077563e28b011e605cd17fcadb70960ecd9fd53e3c025bacd45d6cb336f5", + "f90248a0a7dcceba261da9e45b65fe82614d8fb0fc9a77c878b2d785c740257296642e88a0" + "7c27923fc69e2f8b5f04371b2c17c2966c0d41b114179a2c60fcb5187e4544e2941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda01fcf6d1185949ea75ed439068db8197af2b04322" + "20905b29a2fab8cd85172977a0ffe6fb5dd8d94a92aa780894b7fe2e90732d4be9fc78bb24" + "f4607c86aceb2ba1a003f9e1d0127e2da49437935dbb9f815fd98d6901a159669aead8cce7" + "aed8938eb90100000000000100000000081010000000000200000000000020000000000000" + "b0000010400000010002000000020000002000000101010000000008800001200000010000" + "00000000080004000800001000000020000000000000000200000000000000000002000000" + "00400000028008000000004004000000000008100000000000480000402000010008000000" + "04000000100000000015000000000160400000020000000300100020000000400080000080" + "80020000008000100820000000000000000304800400020040000100800000002000010010" + "00002020001000204000100081000004000020020000800290800204001000000020002000" + "00000006894ba850becd5b21f3838344614e8367c28083071b688462d5ef7f8fce018c4952" + "49532d62613031656132861c42cb79b6ed840387ee400280b85000002020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000005b0a45b3d960fd44e4846ce0" + "6272a2ca38f50b4e9ef1db30c2e45e14a44b83218aefd562afa7091707416ad5" + ), + ( + "a7dcceba261da9e45b65fe82614d8fb0fc9a77c878b2d785c740257296642e88", + "f90248a06336334c3367e92e233cfccb16ae336bf1601428f96a7971de8bcdaa90c00401a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0c1d8061f27e1cc4f30b7bf7ed3e786b86f20d227" + "f0df204b0035a24b7e6e8b1ea091b1395e07739d1e481fb82884218d16716ca3e2912131b0" + "176222e21a21210aa04946f8a366a24527b1130875165b1a569ac56f4f543219e8468ac0f1" + "5aafeeacb90100000000000000000000001010000000000000800000400000800000000000" + "00000000000000010000000000000000000000000101800000000008000001200000000000" + "00000000002004000000000800000000000000000000000200000000000000000000000000" + "00000000000000000000000000000000000000000200000000010000000000801000000020" + "00000000000000000000000000000160000000020000000200100020000000000000000080" + "80020000008000100020000000000000000100800400000000000100900000002000010000" + "00002000001000000000100000000000000020000000800090000200001000000000000000" + "00000000894bd8db88be78dff37a8344614d8367c28083015ae48462d5ef328fce018c4952" + "49532d626130316561328605433715c14c840387ee408080b8500000f533e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000c875f3e88db0de1cb913e5c4" + "9c26337203500a37a15c9294f2309444430d97176cefd562afa709176f8969be" + ), + ( + "6336334c3367e92e233cfccb16ae336bf1601428f96a7971de8bcdaa90c00401", + "f90248a0bd2d8ce98043085e587ea0c3e2edf0aa79fa0bf787ed10b83a3eebf66390eb31a0" + "257529243256c04599e0ed044e3663f4d0828639031ce36a77ad31b35a0aedd9941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda090d968648e5cbaca481395c8059181122cc38ce4" + "3005e68444d234727fea051ea06528a3089857f62f3ba2ae44be986842a2f715f5521cd9ab" + "7433ac8c9fc06596a04a2ab03224f86be87c91d07f215d616f68519c0da19e1b6b7cefda73" + "b33bf68cb90100000000000000000000000000000000000200000000000000000000000000" + "00000000400000000000000000000000000000000000010000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000008000000000000000000000000004000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000020000000" + "00000000894c098577c370d63f278344614c8367c280830239d68462d5ef1a8fce018c4952" + "49532d626130316561328608a510bad272840387bff80180b85000e00620e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000f36b33082cea46dd748d6204" + "28efb79439782ddde9eafd9c6c8c5b8efc3576c730efd562afa709175362b3c7" + ), + ( + "bd2d8ce98043085e587ea0c3e2edf0aa79fa0bf787ed10b83a3eebf66390eb31", + "f9023fa0312026a05ca07a67d5b04db20986d9f1f093c5cf1bb2fe466a42aedadd3f371fa0" + "23b94f25a591fb5bf76913cd586b49c40acdd2919f6547a260f2fba6aad5038a948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a062a8219fd635cc4674cf68a8a8e01ae3eaa24da3" + "3267eed4c1d684bbf2a5dc5da04cd28f50c22f930b97f624a39274e2b40d19883637ad4bc9" + "410ceb1f6adc441ca0e27a5c21fba87e74c8273fd7932ef17be151d6f28451c1bfb554005a" + "6c26fc83b90100000000000000000004000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000100000000000008000001000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00020000000000100000000000000000000100000000000000000000000000002000000000" + "00002000201000000000000000000000000000000000800090000008000000000000000000" + "00000000894bd8fa99f047b299a68344614b8367c280808462d5ef088fce018c495249532d" + "353834303665308084037ecd470180b8500060172de827459e56aa848494122a884f09593a" + "1acd62d5b71605000000000000000000299ab59c1df27ff8fc319982c79c6eb70b5aa4753b" + "5ff7f7903b03b5bc8b204c0defd562afa7091720d50261" + ), + ( + "312026a05ca07a67d5b04db20986d9f1f093c5cf1bb2fe466a42aedadd3f371f", + "f90248a0efd7e29a57a2103cc7c88c1451e51d850ca738312e01293bdf84c73c2e532107a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479412d3178a" + "62ef1f520944534ed04504609f7307a1a088dd275932fcf46842e772129bf39b7930284fc8" + "be3237ee0e67760e006ffb9ca0c3bb5b8744198801b2cbed5379a5ca40b2e624244d8a4884" + "aee6bd8cd50907b4a0f5ad19e5560d650e0fc5fa099882b1fcf7e8b8be0b7d03b192233825" + "e763581db90100000000000000000200001010000000000200800000400000000000000000" + "00000000400000010400000000000000000000000000010002000008800001000000000000" + "00000000000000400000000800000000000200000000000000000000000000000000008000" + "00400000000000000000000000000000000000000200000000010000000000810000000000" + "04000000000000000000000000000020000000000040000200100020000000000000000080" + "00020000008000100000000000000000000104000000000000000000800000002000000000" + "00012000001000000000000000000000000020000004800080000004000000000020002000" + "00000000894ba88eb979937d2ad38344614a8367c2808303fac98462d5eef58fce018c4952" + "49532d35383430366530860f750a41d1e0840375f1448080b85004e02d22e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000030a18534e9c829906e68cac4" + "eb17af63ef2baefa7ada14897b137d84dc71763bf8eed562afa709170d6d0d5d" + ), + ( + "efd7e29a57a2103cc7c88c1451e51d850ca738312e01293bdf84c73c2e532107", + "f90248a000f76726107643ae0ada78925055c36595dece094722109f3d1421c858d3d7b6a0" + "4cc6043e0f96880138f95c8a79f11f8461c7158f8c4cb122db3403d517c110979412d3178a" + "62ef1f520944534ed04504609f7307a1a0b2b2fc34918ff37a5f8d1859be53f4dbe1ab04ef" + "857680738f18564c730ee926a044eb59d87c66d0e90b174339239fa2b365fc90e0a67a1d01" + "1cd451df3171a236a0dbae70afc4b39570772e1742f83d10ebe396e8ea9b2a9ba6e02dcb38" + "5ecd3942b90100000000000400000004000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000100000000000008000001000000000000" + "00000000040000000000000000000000000000000000000000000000000000000000000400" + "00000000000000000000010000000000000000000000000000000000000000000000000000" + "00200000000000000000000000000104000000000000000000100020000000000000000000" + "00020000000000100000000000000000008100000000000000000000000000002000000000" + "00002000201008000000000000000000080000000000800090000008000000000000000000" + "00000000894bd919ab2ed02b5b0d834461498367c2808303706c8462d5ee8f8fce018c4952" + "49532d353834303665308618498207d10884037ee4300480b8500480c630e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000646f73d1af0ed50c20eccbaf" + "74be6c37a818ea76874a9ad258031cfc457de2c9b6eed562afa709170e3c2e7c" + ), + ( + "00f76726107643ae0ada78925055c36595dece094722109f3d1421c858d3d7b6", + "f90248a06ea188a031f2a2ab0ea184f049e751e8b6e01b0dd5da3b69b947f27fcab51d7ea0" + "a8f41fe9671248f7a83f9fa5ddc8e63a1da29bacc21d20e77e3ee0e520570c34948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a099356d2d8b17bd92b8f39ba51499f1855b882453" + "de69eeda5ecbe73e69bb9631a0c14beae7fd58f56ad91b33933e1caf36c679cf21d4d1481f" + "adff28ecfd128401a0fee6c3f2254f6a88b69df19111a4ffc1c18f56965c27c400db50efbb" + "b2f5f462b90100000000000000000000005012000000084000800000400000000000000000" + "40000000000000010000000000000000000000000000000000000400000000200000000000" + "00008000000000000800020800000000010000000000000000400000020800000000000200" + "00000000000000000000020000001004000000100200000000010000000000800000000000" + "00000000000000000040000001000020180000020000000200000000000000000000000080" + "80000000008200000000000000000000000200000400000400000000800000000000000000" + "04000001000000000000100000000000000020000000201000000000000020000000000000" + "00000000894ba8adb6e2b9f1ca8c834461488367c28083033b778462d5ee7a8fce018c4952" + "49532d35383430366530860c8defee2620840387ee400180b85000c0b02fe827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000af9f261fc146cc4bb0df929a" + "63d0a2d6cce4e7317ef67a3b16eef6f7ef5299ef7aeed562afa70917071a9b88" + ), + ( + "6ea188a031f2a2ab0ea184f049e751e8b6e01b0dd5da3b69b947f27fcab51d7e", + "f90248a00f4213b7cc83c5349b90931d630d717166e18f28ff0f0cb33a2e98a5d80c380aa0" + "eb3e6d3ac9f77703623ed671894e0ddee346d9ee39590207f40b931c743bc39b948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0e0caaba8c6672bfbf87defa431db1a6c0a76c307" + "eca8b7a92491a6604a771188a001c25dfc2491d00d3927c23eb678c40b4a696533ac424531" + "a49ec8c89dc9e385a0beea104d41b08ea8a9f68bb2fbfb0572005590e2cb5efebe779b89fe" + "68caf2a4b90100000000000000000000005010000000004000000000000000000000000000" + "41000000000000010000000000000000000000000000000000000408800000200000000000" + "00000000000000000800000000000000010000000000000200000000020000000000000200" + "00400020000000800000000000001000000400100000000000000040000000010000000000" + "04000000000000000040000011000020100000020000000200100020000000000000000080" + "00000000008000100000000000000000000300000400000400000000800000002000010000" + "00002000001000000000100000000000000020000000a00000000204000020000040002000" + "00000000894bd938bc7a124f6e05834461478367c2808302293a8462d5ee548fce018c4952" + "49532d353834303665308608648f49253e840387ee400180b8500000ff3fe827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000061f2da0b3ed202c40aef046e" + "e0f8824211bbf921979df019a19bf25628a4c4de82eed562afa709173aefc06e" + ), + ( + "0f4213b7cc83c5349b90931d630d717166e18f28ff0f0cb33a2e98a5d80c380a", + "f9023fa0d1456ddfc522e892f12c5cd8038e26f6d0039e918286fbb17466292975751003a0" + "ade7a400a04dbd9850e9247527b591a3efb458d7f1debeece5751f62d2a76397948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0ce4b2cc6170849004af7de7a4cd93eb09d7c2efb" + "0d5587e0b6512cb59c080001a053b1b3b300bfc6d454122b6e9613f023e5c2af47cdfaee00" + "bc42e256adb54824a0490eaf4a86dde21d569e2ef14c9e8637d229452ae33198a9d6ad6595" + "fb2bacdcb90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000100000000000008000001000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000100000000000000000000100020000000000000000000" + "00020000000000100000000000000000000100000000000000000000000000002000010000" + "00002000001000000000000000000000000000000000800090000200000000000000000000" + "00000000894c09e2e74b8a560b7c834461468367c280808462d5ee228fce018c495249532d" + "3538343036653080840387ee400280b85000208b30e827459e56aa848494122a884f09593a" + "1acd62d5b716050000000000000000007fa8325bf6c6c22cf44399cc17cea1c1e563fa0efa" + "f4315ce1e4c38413346c0f3beed562afa709172242d66c" + ), + ( + "d1456ddfc522e892f12c5cd8038e26f6d0039e918286fbb17466292975751003", + "f90248a05f0b678c70cbfa9d6a3d53b039a77b0c6e978e9258b8fff0270ab9d02711f4baa0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a04708e6af6986c77d9b20230080b9220d5b88d375" + "f04790a0be6523465ee3ca4ca00db752c6d4cbb690670d5baa51b1191510bbb935cfd5ead0" + "f95346e0a038c268a0db5234672e39aef3e2b5d8308ed2743c3c9d00b46e0a00932dc134af" + "99faa61fb90100000000000000000000004000000000004000000000000100000000000000" + "00000000000000000000000000000000000000000100000000000408000000200000000000" + "00000000000000000800000000000000000000000000000200000000000000000100000200" + "00000000000000100000000000001000000000100000000000020000000001000000000000" + "00000000000000000040000000000100100000020000000000100020000000000000000000" + "00000000000000100000000000008000000300200400000000000000000000002000010000" + "00002000001000000000100000000000000200000000800010000200000020000000000000" + "00000000894bd957cdd20e2408e7834461458367c28083014a968462d5ee158fce018c4952" + "49532d3538343036653086050405714f40840387d71c8080b85000e0ff27e827459e56aa84" + "8494122a884f09593a1acd62d5b7160500000000000000000077c8d29de0b96b2c1703f757" + "376fe12ad2f1ef988a15566d88ea4f007abf75341aeed562afa709170829460c" + ), + ( + "5f0b678c70cbfa9d6a3d53b039a77b0c6e978e9258b8fff0270ab9d02711f4ba", + "f90248a060b0d2c78e439013872dbffb6bbb9200f8aad5a507bf218e6e67b2c19f6f5e33a0" + "99e5a82dbff8170eccfa39711f3440a39b00a72a49a41f8b41bfe99a553551a79412d3178a" + "62ef1f520944534ed04504609f7307a1a0f07d9f602b20d912f7b051fcdec4b1d0e47127d9" + "18b68af1dec2249abbd08405a020ef0137230a250ba83b125ce2d9dbde4cb5b69a37fb2226" + "013db48158cec0f1a0934832c8ad860f8c0207b2f2845725bb2be3f9c0374242f206947131" + "64bac484b90100000000000000000000001010000000000200800020400000000000000000" + "00000000400000010000000000000000000000000000050000000000800000000000000000" + "00000000000000000000000800400000000000000000000000000000000000000000000000" + "00400000000000000000000000000000000000000200000000010000000000a10000000000" + "04000000000000000000000000000020800000000040000200000000000000000000000080" + "00000000008000000000000000000000000004000000000000000000800000000000000000" + "00080000000000000000000000000800000020000000100000000004000000000020002000" + "00000000894ba8ebb1db1b83112e834461448367c2808303fada8462d5ee0b8fce018c4952" + "49532d35383430366530860f754c4952c084037ee4300280b85004402a26e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000b29bf3d7c2d5c71387bbace9" + "d59ca10a2b93b3b72850272870c1434cb3fcdcd511eed562afa709172472c315" + ), + ( + "60b0d2c78e439013872dbffb6bbb9200f8aad5a507bf218e6e67b2c19f6f5e33", + "f90248a06ffcd7c2f3729cbd0eb66f8f05aee47205fb5e4bc869ffb91adcbdcd0056a911a0" + "190f5a243eba48c14d314b7dbcdc21b3080f4aa33a0d6b5c55e067d9d5db61cc9431fe561e" + "b2c628cd32ec52573d7c4b7e4c278bfaa06c165235dfa8929e055786682af5d70e7956e6af" + "bf621619ae7758d5e9a78450a0e2017690f8a5376766e1866bc0bffae2ab6fea8e1713b5a8" + "862957516443caada0cf3c7bd76a1ce970008592eb32f28017ad202de1271327738a175425" + "db77b9cdb90100800000000000000000000000000000000000000000000000000000104000" + "10000000000000000000000000000080000000000001000000000000000000200000000000" + "00000000040004000800000000000000000000000002000000000000000000000002000000" + "00000080000008000000000000000004000008100000000000000000000000000000000000" + "00000000000000000040000000000040000000020000000008000000000000000000000000" + "80000000000000000020000804000000000200800408000000000100000000000000000000" + "00000000000000200000100080000000000000000008000000800000001000000000000000" + "00000000894bd976df36c3ae6210834461438367c280830183ab8462d5edc88fce018c4952" + "49532d626130316561328605bd1b5e9380840387ee400180b85004200020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000ff8ca515569d4949837f2abe" + "418d7ec71292d19db61aa40a1718330b1b8d6cc803eed562afa70917f31961a9" + ), + ( + "6ffcd7c2f3729cbd0eb66f8f05aee47205fb5e4bc869ffb91adcbdcd0056a911", + "f9024aa01162ad79147b22617aaf323899069545c3d853b9e6b4a383ec3a790b1fa4b107a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a018821a1a9b9562262de57e92e121c4c3f61b8319" + "5887f1a685dd7e80f35fce25a04c7805cdfaa0ca85322094d0caf9385407d0a2ac982f4bb7" + "6f1e8a62124dcee3a0f89fccb3b141c608f5541376a6600e7859ddc7e7f4f8cba8b3d4828a" + "dc37dafbb90100000000000000000000001010000000080000200000000000000000000000" + "00000000000000010000000000080000000000000000000000000000800000000000000000" + "00008000000000000000000000000000000000000000000000400000000010008000000000" + "00400000000000000000000000000000000000000000000000000000000000010000000000" + "04000000000000000000000000000020080000000000000200000000000000000000000080" + "00000000008200000000000000000000000000000000000000000000800000000000000000" + "00000000000000000000000000000000000020000080001004000004000000000000002000" + "00000000894ba90aaf6a56aa1e26834461428367c2808301ed848462d5edb791d0018e4952" + "49532d33313537353561623586077cda4c1b80840387ee408080b85004200020e827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000c430d45aa99904c8d711" + "7caa6389571d6bbd2eb4eeac2aa10e85115de5231c38c1edd562afa709174bc56830" + ), + ( + "1162ad79147b22617aaf323899069545c3d853b9e6b4a383ec3a790b1fa4b107", + "f90247a08c2cdba0a18eb90906cad6c9ff5b1d7b78fa2633e58febb3c618071999509ffca0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0d27f203efa12cd6a8473ad2d0bc9376b5ef619d6" + "5420c34c7271f7b5e21571bca05e0eed63bbbeb944e59b6d2ef05a9af8c36b05f75c35adbb" + "28877cac23f37dd6a0d4e52dbe01aca0742191de227edd20b7b70c2f9b77bda57bfc07130d" + "40d187a9b90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000200000000000" + "00000000000004000000000000000000000000000002000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000040000000020000000008000000000000000000000000" + "80000000000000000020000000000000000000800000000000000100000000000000000000" + "00000000000000000000100000000000000000000008000000000000000000000000000000" + "00000000894b78bd696453e510ab834461418367c28082b8258462d5edaa8fce018c495249" + "532d353834303665308602cb3b46fa60840387ee408080b85000004020e827459e56aa8484" + "94122a884f09593a1acd62d5b716050000000000000000000e96fe8c78952c215acc40294b" + "bba6ab41bade19392f27f2e05e7ccc40fa4a33abedd562afa7091739e4764d" + ), + ( + "8c2cdba0a18eb90906cad6c9ff5b1d7b78fa2633e58febb3c618071999509ffc", + "f90248a0069e4673000a57d7d952ef3809d5a081b0c9c173ac3547461b0e2a33c092a855a0" + "fe9055df50de0dd223708df96f3e262dd28f741d1b99f06f9793b4c49cc20777948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a0d90146e17090e0ed56705f03793cdd7e6f789fee" + "4a60bd2316dd26c6aabc5562a03d8b41fa80dc08229eb38a5652e8d8efca1ce029f9d8246a" + "f3bdf7d7da8f0d20a0a9248d1a2935a9c5df6de7c2471e47bee70b1cc91f80348569f4d974" + "219d618ab90100000000000000000000001010000000000200800000400000000040000000" + "00000000400000010000000000000000000000000100010000000108800000000000040080" + "00200000000000000000000800000000000000000000000000000080000000000000000000" + "00400000000000000000000000000000001000000200000000010000000000810000000000" + "04000000000000000000000000000120000000000000000208100020000000000000002080" + "00000000008000100000000000000000000104000000000000100000800000002000000000" + "00002000001000000000000000000000000020000400800010000004000000000020002000" + "00000000894b488ef9688bdd78b0834461408367c2808303f65e8462d5eda08fce018c4952" + "49532d35383430366530860f63e15dae40840387ee400180b85000006020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000d848ff5ef7edfec9e4d5f5ca" + "fee46aa2fc85a8d62f53faf61e80da1381b4553aa5edd562afa70917063b0956" + ), + ( + "069e4673000a57d7d952ef3809d5a081b0c9c173ac3547461b0e2a33c092a855", + "f9024aa0b8e17610ddc683c026fc0b21341ca2fd3bbb320600514826b24b73e79d9eb40da0" + "d2c5a7b29e92e0d1df221e09acdf6b00391acad1dc99a65bce9bf423bb1d44ab9432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a0ddb19d127e07152ab0deb566ef105a5448ebd78d" + "dfee9da8e7e3b2fa334e15d7a0a31984179426d8c82b0b7c3650d48c9aa3e007ef2a5e6942" + "191c8600cef3ee8ca0bbf0774ecb0e56f7ed9ffd1917ef7077541acb115bfbd2710763ac33" + "2022139cb90100000000000400000000011010020080080300800000460000000000100000" + "2020001044004011004200000000000002800000014001000000020a010000200000050000" + "40208000040004008800208800000000040200000042100200400000000000880006000400" + "00000000008208000400030000000000001000108200000000010000450000900000000004" + "00300004000000400001008000000124480000120020020208100220000000000000100080" + "80004000208200100920000000000000008304010010020000010000800080012000010084" + "0005a200011008240000100000040000280021000008801010000200800004000020000000" + "00010000894b78dc533767a4ec7a8344613f8367c280830ee99c8462d5ed2991d0018e4952" + "49532d3331353735356162358644ff2608ae89840387ee400180b85004200120e827459e56" + "aa848494122a884f09593a1acd62d5b7160500000000000000000089278d914198991bd3f1" + "1e5ab348d0fab998a0fe7e14d5f5b843336b90cd65725bedd562afa709170214499c" + ), + ( + "b8e17610ddc683c026fc0b21341ca2fd3bbb320600514826b24b73e79d9eb40d", + "f9023fa06c392abc09e5f60482e3c0bc28956cb50aff6a6aaddc9ddbfd72e9e83d7e794ea0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda09aff5c45e409825e139505325b94e34a35dad86d" + "f680d646f4a7bd8bed4f41f7a0e17988545c7647416fa4f7e73966d619ad59f9f73d81d3f6" + "024dc1263efa5a25a066cfdb731f620cd96e2c2cb0f7d3c3a2879c29b40014aa27efbbf3cf" + "9cd3b0f6b90100000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000894ba948aaaee1cf0a958344613e8367c280808462d5ec9e8fce018c495249532d" + "6261303165613280840387ee408080b85000200020e827459e56aa848494122a884f09593a" + "1acd62d5b7160500000000000000000082668ef9d4c5af7490605f6b0d3148e313c77accef" + "bcb00b38acd785d0df7854d5ecd562afa709177f272dc6" + ), + ( + "6c392abc09e5f60482e3c0bc28956cb50aff6a6aaddc9ddbfd72e9e83d7e794e", + "f90248a0ac5aa3755fe5ef3953f52fdfd2569e8a65524f8ab22e4f86db8a95bb83720f9ca0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda01df85c83d5daf5b72e389a320193652f25284103" + "395fcfc9e75413312153fad6a0a2e11b34312760005f08c14322eb1dab835dc3268ca65cac" + "7803b052d1c9fa3ea0113cbee206f13e3fb7bcb1475ae7386ab5b48296defaef9cf4a5a4b8" + "0bc61da8b90100000000020000000000001010000000040200000000000000000000000000" + "20000000400000010002000000000000000000000000010000000000800000000000000000" + "00000000000000000000000000000000000000020000000000000000000000000000000000" + "00400000000000000000000000000000000000000000000000000000402000010000000000" + "04000000100000000001000000000020000000000000000200000000000000000080000080" + "00000000008000000800000000000000000024000000020000000000800000000000000000" + "00000000401000000000000000000000000020000000000000000004000000000020002000" + "00000000894b78fb3d1724ea9d648344613d8367c2808303ca0a8462d5ec928fce018c4952" + "49532d62613031656132860f4100deade6840387bff98080b85000000020e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000d4fbaa19447c36b03ab0ab50" + "c7a01399f868688b0ca16167084e47cb0f0325269aecd562afa709171005eb19" + ), + ( + "ac5aa3755fe5ef3953f52fdfd2569e8a65524f8ab22e4f86db8a95bb83720f9c", + "f90247a093534b6267baa9eaa6c15ef644304fdef8f55799b72acee5dd7f72d962f63b2ca0" + "d152fafd946971bd32d78b299947aeb1d3151710690d24619047dedd306b0c409412d3178a" + "62ef1f520944534ed04504609f7307a1a03357fcb4fc109971eeb591e5f258c31de30eebb1" + "cfb7f2d34a6321e6b9977479a0de612b2d9bc45b69fad71ef3107faaf9ede52f348ac738f4" + "4a203efe805d6d28a07f89b38de12df79187ea5a2835dc17e708208b221951b2c0747dcc79" + "98869570b90100000000000000800000001010000000000000800000400000000000000000" + "00000010000000010000000000000000000000000000000000008008000000000000000000" + "01000000000000001000000800001000000000000000000000000000000000000000000000" + "00000000008000000000000000000000000000000200000000010000000000800000000000" + "00000000000000000000000000000020400000000000000200100020000000000000000080" + "00000000008000100000000000000000000100000000000000000000800000002000000000" + "00002000001000000000000000000000000020000000800000000000008000000000000000" + "00000000894ba967a86431d750268344613c8367c28082e22d8462d5ec6d8fce018c495249" + "532d3538343036653086036e65748dcf84037ecd480280b85004002020e827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000ddc9e9ac3208dc7baa95dae24e" + "2a613d4bb047f9527d056b1288c32d9f7727e86eecd562afa7091727ddb84a" + ), + ( + "93534b6267baa9eaa6c15ef644304fdef8f55799b72acee5dd7f72d962f63b2c", + "f9024aa009f980867ac6384333a5b6b671aa713689c78017ee7bf2d73d6516c2d3f84559a0" + "00aca3e7ae923f98edeb4413ea299bc0db9b23626f40f94c6bc5855a50705a929432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a09c6327512e615bb497d2e903a55503fc801853f4" + "6101a5543d8710841c50b770a0198c92b01686a6b620abc33cfb86d169ac08aa3013b8c8fb" + "95f7a0db642c62a8a09324fec39a1df45dc999cef8944a8fb6c49242af95a7c526045c5033" + "146274c8b90100000001000100000020000000000000080000000000100020000000000000" + "80000010000000000000000000000000000000000100000000000008000000200000010000" + "00008000080000000800000000000220000000000000000000400040000000000002000000" + "00000801008008000000004004000001000000100000000004480000000000000000000000" + "00000000020000080014000000000100480000020000000100100020000000400000000000" + "00000000000200100000000000000000000300000000000040000000000000002000008010" + "00002020081004204000100000040004000000040000801010000000000000000000000000" + "00020002894b791a27038bbb53248344613b8367c2808304f33c8462d5ec5e91d0018e4952" + "49532d33313537353561623586217b927baa00840387d71c0180b85004400120e827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000286885d1f3e6a5b193b1" + "33506e10c33bf8ec6c663f938ca3d993122650973fc167ecd562afa709178faf0735" + ), + ( + "09f980867ac6384333a5b6b671aa713689c78017ee7bf2d73d6516c2d3f84559", + "f90247a0a3268f8fb20bb6ae47068f3b69821dba2fa30afd2e76f718be776558b3367594a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493479412d3178a" + "62ef1f520944534ed04504609f7307a1a0ea29f365c1525a6f84a755245b3ffa27c98b6bd4" + "652839ffddee8fb5dfa3ebe3a0d5fea9a107f2746742273b227013f394f4f39bf56f99772a" + "df9ab7f2cacf6454a0643c392f75df75966f2ae2dfcabcf5de76df8ac0ac79ce75dca71042" + "20597cf4b90100000000000000000000001010000000000000000000000000000000000000" + "00000010000000010000000000000000000000000000000000000008800000000000000000" + "00000000000000000000000000000000000000000000000000000000000000000000000000" + "00400000008000000000000000000000000010004000000000000000000001010000000000" + "04000000000000000000000000000020400000000000000200100020000000000000000080" + "00000000008000100000000000000000000100020100000000000000800000002000000000" + "00002000001000000020000000000000000020000000800000000004000000000000002000" + "00000000894b48eb7bd304ae16ed8344613a8367c28082dee48462d5ec478fce018c495249" + "532d35383430366530860361b9700f8084037ee4308080b85004e0ff37e827459e56aa8484" + "94122a884f09593a1acd62d5b716050000000000000000003b865193bd147275e3d7f11576" + "1f5ebd90481b97e30bb089ac2d111043c4c90447ecd562afa709172856c548" + ), + ( + "a3268f8fb20bb6ae47068f3b69821dba2fa30afd2e76f718be776558b3367594", + "f90248a0f5f939f01f186edf39a59fef143f50af24ec522d4fdda729ee03277f828209bea0" + "c31204533d47455ae5a81859c1a1df5f191842039ef5eb7dfd445dca8487541b941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda01b7e6ca7c463f4e1b24ea2819b06d55cc7ad1e17" + "c9d3a941d9a83febb0129b0ca0939e0d8fc282576abeff3b7e818d745a4093fc031b806538" + "8a287e66ec4d1af1a02fdce1591aa60438a1a84e0cde1f19121b0520f743b0a8c36976ca05" + "3eca453fb90100000000000000000004001010800209200000800000400000000000800401" + "0004010000000801300000000000000020000004000100100000800c040000300000008000" + "80000008000010000804000880000000800040040004008020004000000004000200000040" + "20000001400040400210000000011601000800100200400081010080000400804000000105" + "0000c000020028000000000012001020400800124000080200100824000200004000000092" + "0000114000a000108800000c40000000000340408400200000000000801000002000000000" + "00002020221000080040124100000000000020080000804400000008001400000000000200" + "10001000894b793910fc9c1c3d7a834461398367c2808316a22e8462d5ec338fce018c4952" + "49532d626130316561328683b65d57dce8840387ee400480b85000000020e827459e56aa84" + "8494122a884f09593a1acd62d5b716050000000000000000006725ed9f644b57da66508f9b" + "59275d2adbdbfbc657944eb2466e757bb47ea0d43decd562afa7091784a3a82e" + ), + ( + "f5f939f01f186edf39a59fef143f50af24ec522d4fdda729ee03277f828209be", + "f90247a0d678d6777e115d8de1d6fe1800a244a3204afdd7856899a8ef9c6e6a3cf0c189a0" + "1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347941b7a75ef" + "070ff49e6b9491a26403d799f2099ebda0e63e5b3d6afd0f9c86c5c8a28fa928804f23c591" + "d64d8fc7ba38fd636d77638ea00a1ecbbb58dfbfd3d9804fe9ffe8c9e704c88a50bac5e7c7" + "12b5857f2a750609a0c2ca96f072f77af394ff531f6ec5fda29049d18bc8b93e4037b1f3d0" + "6024c5f9b90100000000000000000004001010000000000000000000000000000000000000" + "00000010000000010000000000000000000000000000000000000008800008000000000000" + "00000000000000000000000000000000000000000000000200000000000000000000000000" + "00480000008000000000000000000000000000000000000000000000000000010000000000" + "04000000000000000000000000000020400000000000000200100020000000000000000080" + "00000000008000100200000000000000000100000000000000000000800000002000010200" + "0000200020100000000000000000000000002000000080000000020c000000000081002000" + "00000000894b490a520fc5379f00834461388367c28082dee48462d5ec068fce018c495249" + "532d62613031656132860361b9700f80840387ee408080b85000e0ff3fe827459e56aa8484" + "94122a884f09593a1acd62d5b71605000000000000000000d2726158887ab33deca231e030" + "81c4f2864cbb9c02f6f1fa3de3621af298ec6426ecd562afa7091787482d1c" + ), + ( + "d678d6777e115d8de1d6fe1800a244a3204afdd7856899a8ef9c6e6a3cf0c189", + "f90248a0d46b3cf34d661b20b237fe5cf0b333e43c91d01cdc16751d4a76d291a58a1faea0" + "86531ed70abd0a527e5c46f9ddb86616776ade879ab9519f9abfa95ad5a3892b948afad2f4" + "17e5132ee983b74d28600c0dedcc3e07a04ba75d4065fa0e61a266c0d4f470ceca0118a31b" + "94763f6f17c675623b7d6f34a0fd5d242db12603523d8b31e0d8a70a492cd509370b9d5fb2" + "dd15a7fabcdc4bd6a0cc70f2d9be37966553566606e1fb1b912ec072393ab30babedd12314" + "64c43adeb90100000001000000000000200000000000000200000000000000000000000001" + "0004010040000800000000000000000000000000000101100000000c048001200000008000" + "00200800000100000804040080000000800000000004000000004000000000000200000040" + "00000001000040800010000000000001800800100000000004000000000000004000000105" + "00000800020000080000000002000000000820124040000000100824000200000000000010" + "0002004000a000100000000c40000000000304000400000000000000000000002000000000" + "00002000003000000040106000000000000000000000804480000000001400000020000000" + "00000000894b18fa55aff86fa975834461378367c28083097d2e8462d5ebfc8fce018c4952" + "49532d35383430366530867bd611686348840387ee400280b85000e0ff37e827459e56aa84" + "8494122a884f09593a1acd62d5b71605000000000000000000287135a8e2b795e47060c31f" + "1ec9c9deccf8e84e44ac9e299fb9f84dd20aea5f01ecd562afa709177917cd77" + ), + ( + "d46b3cf34d661b20b237fe5cf0b333e43c91d01cdc16751d4a76d291a58a1fae", + "f9024aa047a3be8e84eee4cb725809a32ea18732b5e17b49764e0f0616722235eb0401e4a0" + "e7a4c42cc0fcc40f7760983477bd38bd3df57933307f523613b185e9fcfc9ad99432dfc7a8" + "4f24b10a5dded1d8b24f48b96ab77373a049577795b4af0c12d3b1cea1484ff85d6b9746c9" + "6b0305ac73ff79dea4e9b405a0fc9549566259ebb26e177c2885dfc033043682c34a689fd8" + "91c66356e016ec30a0827a9e948b8c195b692c1bb7a2e1971a4a84f15c8a2e501292438ba0" + "a3f0d545b90100000000000000000044001010000000000200800000600000000000100000" + "00000000400000010004000020108080000000000100010040000008000800300000018000" + "00000000000000000800000800800000000000000000000800000000001000000000040000" + "00002000000000000000000000000005000000100200000042010000000000800000000000" + "80000000000000000040000010000120000000020000000220100020000000000000000080" + "01008100008000100000000800008000000304000018000000000400820400002000008000" + "00042000201000000000100000000000000020000000800010000008000100000020000000" + "00000000894ae909083a10b6e27e834461368367c28083066f218462d5ebd891d0018e4952" + "49532d33313537353561623586187f34dd8b25840387ee400180b85004008d2be827459e56" + "aa848494122a884f09593a1acd62d5b71605000000000000000000b78860a4bb65c1f3905f" + "0a2ed92fc784166bb83bdf9161d3e017715f3897f1c2d9ebd562afa7091763d09f75" + ) + ]) + def test_rsk_blocks(self, expected_hash, block): + self.assertEqual(expected_hash, + keccak_256(bytes.fromhex(block)).hex()) + + @parameterized.expand([ + ( + "50b2c43fd39106bafbba0da34fc430e1f91e3c96ea2acee2bc34119f92b37750", + b"\x19Ethereum Signed Message:\n5hello" + ), + ( + "2aca4a6bb4c18bddbcbc3a2d447ca60cde8c1c8aa5a0dfda7b7d0fbf879e1148", + b"\x19Ethereum Signed Message:" + ), + ( + "6a8a0fb089728cb2e37c306675846d98ff95af283b0bcebad4bfbe097de935bb", + b"RSK_POWHSM_TEST_AUTHORIZER_0" + ), + ( + "12b528f1eb450f51c3062e510f85dd3646fdf475fe3af5f3ef5bae5cfca762a8", + b"RSK_POWHSM_TEST_AUTHORIZER_1" + ), + ( + "56edd56a85030aa8b88aedca4d21688c55699fb9e2940f38b4619231be08046f", + b"RSK_POWHSM_TEST_AUTHORIZER_2" + ) + ]) + def test_other(self, expected_hash, bs): + def kb(b): + return keccak_256(b).hex() + + self.assertEqual(expected_hash, kb(bs)) diff --git a/setup.cfg b/setup.cfg index 5eb41e6c..bd38e3cf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,4 +1,11 @@ [flake8] + +# Rules ignored: +# ============== +# E721: Not a really useful rule forcing the use of instanceof() where we just want +# exact typing in our use cases +extend-ignore = E721 + exclude = # Pretty standard ignores .git, diff --git a/utils/tcpsigner-bundle/dist/Dockerfile b/utils/tcpsigner-bundle/dist/Dockerfile index 4726a51e..c228a37c 100644 --- a/utils/tcpsigner-bundle/dist/Dockerfile +++ b/utils/tcpsigner-bundle/dist/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bullseye-slim +FROM debian:bookworm-slim RUN apt-get update && \ apt-get install -y procps libsecp256k1-dev